cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
c       This is the end of the debugging code and the beginning
c       of the interpolation on the triangles routines
c
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
c
c       
c     ortho2smexps  - constructs (or rather retrieves) the
c         gaussian-like interpolation nodes and weights for the polynomials 
c         (i.e. smooth functions) 
c         on the standard triangle with the vertices
c         (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3)) (up to order 12)
c
c     ortho2sfexps  - constructs (or rather retrieves) the
c         chebychev-like interpolation nodes and weights for the polynomials 
c         (i.e. smooth functions) 
c         on the standard triangle with the vertices
c         (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3)) (up to order 12)
c
c     ortho2siexps  - constructs (or rather retrieves) the
c         gaussian-like interpolation nodes and weights for the polynomials 
c         (i.e. smooth functions) 
c         on the simplex triangle with the vertices
c         (0,0), (1,0), (0,1)    (up to order 12)
c
c     ortho2intpmatr - form the interpolation matrices on the nodes
c       (xs,ys). The nodes are located on the standard triangle with the
c       vertices (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))
c
c     ortho2diffmatr - constructs the matrices of spectral differentiation 
c       on the nodes (xs,ys). The nodes are located on the standard triangle 
c       with the vertices (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))
c
c     ortho2sipols - evaluates a bunch of orthogonal polynomials on
c         the simplex at the user-provided point
c
c     ortho2sipolders - evaluates a bunch of orthogonal polynomials on
c         the simplex at the user-provided point, and the derivatives of the
c         said polynomials
c
c     ortho2siexevc - evaluate the value of polynomial expansion on the simplex
c          at the user-provided point (complex *16 version)
c
c     ortho2triangle - construct triangles: simplex and standard
c
c     ortho2_stdtosimplex - map the standard triangle to the simplex
c     ortho2_simplextostd - map the simplex triangle to the standard 
c
c
c
        subroutine ortho2smexps(itype,norder,npols,xsout,ysout,
     1     umatr,vmatr,wsout)
        implicit real *8 (a-h,o-z)
        dimension xs0(1),ys0(1),ws0(1)
        dimension xs1(3),ys1(3),ws1(3)
        dimension xs2(6),ys2(6),ws2(6)
        dimension xs3(10),ys3(10),ws3(10)
        dimension xs4(15),ys4(15),ws4(15)
        dimension xs5(21),ys5(21),ws5(21)
        dimension xs6(28),ys6(28),ws6(28)
        dimension xs7(36),ys7(36),ws7(36)
        dimension xs8(45),ys8(45),ws8(45)
        dimension xs9(55),ys9(55),ws9(55)
        dimension xs10(66),ys10(66),ws10(66)
        dimension xs11(78),ys11(78),ws11(78)
        dimension xs12(91),ys12(91),ws12(91)
        dimension xsout(1),ysout(1),wsout(1),umatr(1),vmatr(1)
c
c       This subroutine constructs (or rather retrieves) the
c       interpolation nodes for the polynomials (i.e. smooth functions)
c       on the standard triangle with the vertices
c
c       (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))            (1)
c
c       and the corresponding quadrature weights. It also constructs the
c       matrix vmatr converting the coefficients of the polynomial
c       expansion to its values at the interpolation nodes, and its
c       inverse umatr, converting the values of a function at the
c       interpolation nodes into the coefficients of the polynomial
c       expansion.
c
c       The nodes are fully symmetric and the corresponding quadrature
c       weigths are positive. The quadrature is of high order but it
c       does NOT integrate the pairwise products (user beware).
c
c       The tables are valid up to order 12.
c
c       NOTE #1: the nodes are fully symmetric for all orders
c
c       NOTE #2: the nodes are gaussian-like, i.e. they attempt to integrate
c       higher polynomial orders. 
c
c
c interp    0     1     2     3     4     5     6     7     8     9    10
c  -----------------------------------------------------------------------
c quadr     1     2     4     5     7     8    10    11    12    12    14
c  -----------------------------------------------------------------------
c nodes     1     3     6    10    15    21    28    36    45    55    66
c  -----------------------------------------------------------------------
c cond #   1.0   1.0   1.4   1.9   2.1   3.5   6.9   7.2  13.5  15.8  27.4  
c
c
c interp   11    12  
c  ------------------
c quadr    15    15  
c  ------------------
c nodes    78    91  
c  ------------------
c cond #  55.6  85.7
c
c       
c       NOTE #3: all weights are positive
c
c       NOTE #4: the nodes are closer to the boundary (but still usable)
c       than chebychev-like ones (see ortho2sfexps)
c
c       NOTE #5: the weights are accurate to 30 digits
c
c         Input parameters:
c
c    itype - the type of the calculation to be performed. currently
c          unused
c    norder - the order of the expansion
c
c
c         Output parameters:
c
c    npols - the number of the polynomials, i.e. the terms in the
c          expansion
c    xsout - the x-coordinates of the interpolation nodes (npols of them)
c    ysout - the y-coordinates of the interpolation nodes (npols of them)
c    umatr - the npols*npols matrix, converting the values of the polynomial
c          at the interpolation nodes into the coefficients of its expansion
c    vmatr - the npols*npols matrix, converting the coefficients of 
c          the expansion into its values at the interpolation nodes.
c    wsout - the corresponding quadrature weigths (npols of them)
c
c
c    ... interpolation of order  0 , quadratures of order  1
c                   total number of elements is    1
      data xs0/
     1    0.00000000000000000000000000000000D+00/
      data ys0/
     1    0.00000000000000000000000000000000D+00/
      data ws0/
     1    0.45590141139095552839871265039273D+01/

c    ... interpolation of order  1 , quadratures of order  2
c                   total number of elements is    3
      data xs1/
     1    0.50000000000000000000000000000000D+00,
     2    0.00000000000000000000000000000000D+00,
     3   -0.50000000000000000000000000000000D+00/
      data ys1/
     1   -0.28867513459481288225457439025098D+00,
     2    0.57735026918962576450914878050196D+00,
     3   -0.28867513459481288225457439025098D+00/
      data ws1/
     1    0.15196713713031850946623755013091D+01,
     2    0.15196713713031850946623755013091D+01,
     3    0.15196713713031850946623755013091D+01/

c    ... interpolation of order  2 , quadratures of order  4
c                   total number of elements is    6
      data xs2/
     1    0.00000000000000000000000000000000D+00,
     2   -0.72527135947068776962128560979340D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.33784547274789465895498776164916D+00,
     5    0.72527135947068776962128560979340D+00,
     6    0.33784547274789465895498776164916D+00/
      data ys2/
     1    0.83747122925185483484415621413487D+00,
     2   -0.41873561462592741742207810706744D+00,
     3   -0.39011034927098671317419951524681D+00,
     4    0.19505517463549335658709975762341D+00,
     5   -0.41873561462592741742207810706744D+00,
     6    0.19505517463549335658709975762340D+00/
      data ws2/
     1    0.50127155117357779154594371101053D+00,
     2    0.50127155117357779154594371101054D+00,
     3    0.10183998201296073031164317902986D+01,
     4    0.10183998201296073031164317902986D+01,
     5    0.50127155117357779154594371101053D+00,
     6    0.10183998201296073031164317902986D+01/

c    ... interpolation of order  3 , quadratures of order  5
c                   total number of elements is   10
      data xs3/
     1    0.00000000000000000000000000000000D+00,
     2    0.78666101639967696838369807741827D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.30094676896614446173661526090005D+00,
     5   -0.78666101639967696838369807741827D+00,
     6    0.24288496199708743989786878437904D+00,
     7    0.54383173096323190163448404527909D+00,
     8   -0.24288496199708743989786878437904D+00,
     9   -0.30094676896614446173661526090005D+00,
     *   -0.54383173096323190163448404527909D+00/
      data ys3/
     1    0.00000000000000000000000000000000D+00,
     2   -0.45417894957933810585376535186351D+00,
     3    0.90835789915867621170753070372702D+00,
     4   -0.45421109445661253251431660004936D+00,
     5   -0.45417894957933810585376535186351D+00,
     6    0.48773309433983369328454581322934D+00,
     7   -0.33521999883221160770229213179975D-01,
     8    0.48773309433983369328454581322934D+00,
     9   -0.45421109445661253251431660004936D+00,
     *   -0.33521999883221160770229213179975D-01/
      data ws3/
     1    0.90708593210472630247407787570254D+00,
     2    0.27481272244823141968358523316723D+00,
     3    0.27481272244823141968358523316723D+00,
     4    0.47124833574335578707704882145384D+00,
     5    0.27481272244823141968358523316723D+00,
     6    0.47124833574335578707704882145384D+00,
     7    0.47124833574335578707704882145384D+00,
     8    0.47124833574335578707704882145384D+00,
     9    0.47124833574335578707704882145384D+00,
     *    0.47124833574335578707704882145384D+00/

c    ... interpolation of order  4 , quadratures of order  7
c                   total number of elements is   15
      data xs4/
     1    0.00000000000000000000000000000000D+00,
     2   -0.27344573096654179666874290539477D+00,
     3    0.27344573096654179666874290539477D+00,
     4   -0.42233238215340581924615566001252D+00,
     5    0.42233238215340581924615566001252D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.18517708686734435661867105631915D+00,
     8   -0.67031349478008169894818481229504D+00,
     9    0.18517708686734435661867105631914D+00,
     *   -0.48513640791273734232951375597590D+00,
     1    0.67031349478008169894818481229504D+00,
     2    0.48513640791273734232951375597590D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.84624076047564449367313431517587D+00,
     5    0.84624076047564449367313431517587D+00/
      data ys4/
     1    0.31574793276457378418547105481567D+00,
     2   -0.15787396638228689209273552740784D+00,
     3   -0.15787396638228689209273552740784D+00,
     4    0.24383371452376474985074290854059D+00,
     5    0.24383371452376474985074290854059D+00,
     6   -0.48766742904752949970148581708119D+00,
     7    0.66709931235482596900014874899532D+00,
     8   -0.17318159475149501708574603496963D+00,
     9    0.66709931235482596900014874899532D+00,
     *   -0.49391771760333095191440271402570D+00,
     1   -0.17318159475149501708574603496963D+00,
     2   -0.49391771760333095191440271402570D+00,
     3    0.97715466171969393506910087330460D+00,
     4   -0.48857733085984696753455043665230D+00,
     5   -0.48857733085984696753455043665230D+00/
      data ws4/
     1    0.57903548483294591423542964237399D+00,
     2    0.57903548483294591423542964237399D+00,
     3    0.57903548483294591423542964237399D+00,
     4    0.29578809508516787711856076890140D+00,
     5    0.29578809508516787711856076890141D+00,
     6    0.29578809508516787711856076890141D+00,
     7    0.24944927325911940024010038068926D+00,
     8    0.24944927325911940024010038068926D+00,
     9    0.24944927325911940024010038068926D+00,
     *    0.24944927325911940024010038068926D+00,
     1    0.24944927325911940024010038068926D+00,
     2    0.24944927325911940024010038068926D+00,
     3    0.14594924486683250282818432865517D+00,
     4    0.14594924486683250282818432865517D+00,
     5    0.14594924486683250282818432865517D+00/

c    ... interpolation of order  5 , quadratures of order  8
c                   total number of elements is   21
      data xs5/
     1    0.41054549238828311189102766680908D+00,
     2   -0.41054549238828311189102766680908D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.00000000000000000000000000000000D+00,
     5    0.21325712856759101183169356375773D+00,
     6   -0.21325712856759101183169356375773D+00,
     7   -0.20943329954359708298201858510617D+00,
     8    0.20943329954359708298201858510617D+00,
     9   -0.54564619381968215052079305560135D+00,
     *    0.54564619381968215052079305560135D+00,
     1   -0.33621289427608506753877447049518D+00,
     2    0.33621289427608506753877447049518D+00,
     3    0.61790526459262316908775089510297D+00,
     4   -0.61790526459262316908775089510297D+00,
     5    0.74698847865890703842144567492046D+00,
     6   -0.74698847865890703842144567492045D+00,
     7    0.12908321406628386933369477981748D+00,
     8   -0.12908321406628386933369477981748D+00,
     9    0.90696090938841085331251280462443D+00,
     *   -0.90696090938841085331251280462443D+00,
     1    0.00000000000000000000000000000000D+00/
      data ys5/
     1   -0.23702855054496270995835502864937D+00,
     2   -0.23702855054496270995835502864937D+00,
     3   -0.24624812117021060280933147992550D+00,
     4    0.47405710108992541991671005729874D+00,
     5    0.12312406058510530140466573996275D+00,
     6    0.12312406058510530140466573996275D+00,
     7   -0.50914158189940910487757361238472D+00,
     8   -0.50914158189940910487757361238472D+00,
     9    0.73196233146553598498418941939654D-01,
     *    0.73196233146553598498418941939654D-01,
     1    0.43594534875285550637915467044507D+00,
     2    0.43594534875285550637915467044507D+00,
     3   -0.50580022762430007816662292958797D+00,
     4   -0.50580022762430007816662292958797D+00,
     5   -0.28222154245720684133826277474821D+00,
     6   -0.28222154245720684133826277474821D+00,
     7    0.78802177008150691950488570433618D+00,
     8    0.78802177008150691950488570433618D+00,
     9   -0.52363412517986678746518903059919D+00,
     *   -0.52363412517986678746518903059919D+00,
     1    0.10472682503597335749303780611984D+01/
      data ws5/
     1    0.33975854390211731751554675239119D+00,
     2    0.33975854390211731751554675239119D+00,
     3    0.38565364677033329498894779864120D+00,
     4    0.33975854390211731751554675239119D+00,
     5    0.38565364677033329498894779864120D+00,
     6    0.38565364677033329498894779864120D+00,
     7    0.19105038827466421543390982661376D+00,
     8    0.19105038827466421543390982661376D+00,
     9    0.19105038827466421543390982661376D+00,
     *    0.19105038827466421543390982661376D+00,
     1    0.19105038827466421543390982661376D+00,
     2    0.19105038827466421543390982661376D+00,
     3    0.17537018741857385048867099288083D+00,
     4    0.17537018741857385048867099288083D+00,
     5    0.17537018741857385048867099288083D+00,
     6    0.17537018741857385048867099288083D+00,
     7    0.17537018741857385048867099288083D+00,
     8    0.17537018741857385048867099288083D+00,
     9    0.61418029244258350312719311287520D-01,
     *    0.61418029244258350312719311287522D-01,
     1    0.61418029244258350312719311287520D-01/

c    ... interpolation of order  6 , quadratures of order  10
c                   total number of elements is   28
      data xs6/
     1    0.00000000000000000000000000000000D+00,
     2    0.20118390635295340772139625456343D+00,
     3   -0.15079250037202784440393433182538D+00,
     4   -0.20118390635295340772139625456343D+00,
     5   -0.35197640672498125212533058638883D+00,
     6    0.35197640672498125212533058638879D+00,
     7    0.15079250037202784440393433182538D+00,
     8   -0.45977547137553210569679563670693D+00,
     9    0.45977547137553210569679563670692D+00,
     *    0.00000000000000000000000000000000D+00,
     1    0.00000000000000000000000000000000D+00,
     2    0.27014777637158715077347592297090D+00,
     3   -0.27014777637158715077347592297090D+00,
     4   -0.49276289931160811994029188578648D+00,
     5   -0.63042255857938661196708703832383D+00,
     6   -0.36027478220779946119361111535292D+00,
     7    0.63042255857938661196708703832382D+00,
     8    0.49276289931160811994029188578649D+00,
     9    0.36027478220779946119361111535292D+00,
     *    0.92494734876766233723716118290430D-01,
     1   -0.92494734876766233723716118290426D-01,
     2    0.80912669690687195892278616279812D+00,
     3   -0.80912669690687195892278616279812D+00,
     4    0.71663196203010572519907004450769D+00,
     5   -0.71663196203010572519907004450769D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.94686583739500540275378813461576D+00,
     8    0.94686583739500540275378813461575D+00/
      data ys6/
     1    0.00000000000000000000000000000000D+00,
     2    0.29027376385263214935631761487029D+00,
     3   -0.31936725566056324109045469063452D+00,
     4    0.29027376385263214935631761487028D+00,
     5    0.29093491807931091734137075764253D-01,
     6    0.29093491807931091734137075764230D-01,
     7   -0.31936725566056324109045469063453D+00,
     8    0.26545149216545053650432092029562D+00,
     9    0.26545149216545053650432092029562D+00,
     *   -0.53090298433090107300864184059123D+00,
     1    0.56899358512843480874764035454148D+00,
     2    0.57197937638892829173633362269466D+00,
     3    0.57197937638892829173633362269466D+00,
     4   -0.28449679256421740437382017727074D+00,
     5   -0.52034851080792149746788829679554D-01,
     6   -0.51994452530813614198954479301510D+00,
     7   -0.52034851080792149746788829679547D-01,
     8   -0.28449679256421740437382017727074D+00,
     9   -0.51994452530813614198954479301511D+00,
     *    0.88089717245566647213212869180794D+00,
     1    0.88089717245566647213212869180796D+00,
     2   -0.36034579610824715850919105046513D+00,
     3   -0.36034579610824715850919105046513D+00,
     4   -0.52055137634741931362293764134283D+00,
     5   -0.52055137634741931362293764134283D+00,
     6    0.10933464922129335736799523519587D+01,
     7   -0.54667324610646678683997617597936D+00,
     8   -0.54667324610646678683997617597936D+00/
      data ws6/
     1    0.36277420379784118761833771412795D+00,
     2    0.23268556895017913639430232601592D+00,
     3    0.23268556895017913639430232601592D+00,
     4    0.23268556895017913639430232601592D+00,
     5    0.23268556895017913639430232601591D+00,
     6    0.23268556895017913639430232601594D+00,
     7    0.23268556895017913639430232601593D+00,
     8    0.10885017487440932571334218310287D+00,
     9    0.10885017487440932571334218310288D+00,
     *    0.10885017487440932571334218310287D+00,
     1    0.27802168237923562474436247851506D+00,
     2    0.14492267832883761963752431717180D+00,
     3    0.14492267832883761963752431717181D+00,
     4    0.27802168237923562474436247851507D+00,
     5    0.14492267832883761963752431717180D+00,
     6    0.14492267832883761963752431717181D+00,
     7    0.14492267832883761963752431717181D+00,
     8    0.27802168237923562474436247851505D+00,
     9    0.14492267832883761963752431717180D+00,
     *    0.11557266714527256518084818830935D+00,
     1    0.11557266714527256518084818830935D+00,
     2    0.11557266714527256518084818830935D+00,
     3    0.11557266714527256518084818830935D+00,
     4    0.11557266714527256518084818830935D+00,
     5    0.11557266714527256518084818830935D+00,
     6    0.25512950601681105906541938654350D-01,
     7    0.25512950601681105906541938654348D-01,
     8    0.25512950601681105906541938654349D-01/

c    ... interpolation of order  7 , quadratures of order  11
c                   total number of elements is   36
      data xs7/
     1    0.00000000000000000000000000000000D+00,
     2   -0.69938932741348905439742506282136D-01,
     3    0.69938932741348905439742506282135D-01,
     4   -0.30512574506707776179706965462322D+00,
     5    0.30512574506707776179706965462321D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.14731091181328722133293852676980D+00,
     8   -0.41544877940523784742661326446055D+00,
     9    0.14731091181328722133293852676981D+00,
     *   -0.26813786759195062609367473769074D+00,
     1   -0.54742908176810014359348909661916D+00,
     2    0.26813786759195062609367473769074D+00,
     3    0.41544877940523784742661326446055D+00,
     4   -0.36972493543069772364766973010445D+00,
     5    0.54742908176810014359348909661915D+00,
     6    0.17770414633740241994581936651471D+00,
     7    0.36972493543069772364766973010445D+00,
     8   -0.17770414633740241994581936651470D+00,
     9    0.70875254436043235603558405470244D+00,
     *    0.50420151912315003577073033460191D+00,
     1    0.63256463994986549849482675197972D+00,
     2   -0.70875254436043235603558405470244D+00,
     3   -0.50420151912315003577073033460192D+00,
     4   -0.63256463994986549849482675197972D+00,
     5    0.20455102523728232026485372010053D+00,
     6   -0.20455102523728232026485372010052D+00,
     7    0.00000000000000000000000000000000D+00,
     8    0.84995921793234041297330925559389D+00,
     9    0.76179469618954362229198685306424D+00,
     *   -0.76179469618954362229198685306428D+00,
     1   -0.84995921793234041297330925559387D+00,
     2    0.88164521742796790681322402529625D-01,
     3   -0.88164521742796790681322402529617D-01,
     4    0.92262117964672778458181110760190D+00,
     5   -0.92262117964672778458181110760191D+00,
     6    0.00000000000000000000000000000000D+00/
      data ys7/
     1    0.80758523290105843137046244384333D-01,
     2   -0.40379261645052921568523122192164D-01,
     3   -0.40379261645052921568523122192166D-01,
     4    0.17616443105116247149722434133729D+00,
     5    0.17616443105116247149722434133728D+00,
     6   -0.35232886210232494299444868267456D+00,
     7    0.39466893465826044797572513282884D+00,
     8   -0.69759475444174325061909092226316D-01,
     9    0.39466893465826044797572513282884D+00,
     *   -0.32490945921408612291381604060253D+00,
     1    0.11086325427301839862216614305623D+00,
     2   -0.32490945921408612291381604060253D+00,
     3   -0.69759475444174325061909092226312D-01,
     4    0.41865586444505420819010222827078D+00,
     5    0.11086325427301839862216614305625D+00,
     6   -0.52951911871807260681226837132702D+00,
     7    0.41865586444505420819010222827079D+00,
     8   -0.52951911871807260681226837132701D+00,
     9   -0.17300329330781003483438501235772D+00,
     *   -0.52729606175908667776120689093650D+00,
     1   -0.36521136515489354552175500223234D+00,
     2   -0.17300329330781003483438501235772D+00,
     3   -0.52729606175908667776120689093650D+00,
     4   -0.36521136515489354552175500223235D+00,
     5    0.70029935506689671259559190329422D+00,
     6    0.70029935506689671259559190329423D+00,
     7    0.73042273030978709104351000446469D+00,
     8   -0.38892056255108384623121045087256D+00,
     9   -0.54162599363461886848198893297688D+00,
     *   -0.54162599363461886848198893297688D+00,
     1   -0.38892056255108384623121045087253D+00,
     2    0.93054655618570271471319938384942D+00,
     3    0.93054655618570271471319938384944D+00,
     4   -0.53267558642908835794092615021492D+00,
     5   -0.53267558642908835794092615021491D+00,
     6    0.10653511728581767158818523004298D+01/
      data ws7/
     1    0.14918041821180441679169997395468D+00,
     2    0.14918041821180441679169997395468D+00,
     3    0.14918041821180441679169997395467D+00,
     4    0.12624854040757062901971528043666D+00,
     5    0.12624854040757062901971528043665D+00,
     6    0.12624854040757062901971528043665D+00,
     7    0.25270513800870268378183306529626D+00,
     8    0.25270513800870268378183306529626D+00,
     9    0.25270513800870268378183306529626D+00,
     *    0.25270513800870268378183306529626D+00,
     1    0.11210931094589871922652042018134D+00,
     2    0.25270513800870268378183306529626D+00,
     3    0.25270513800870268378183306529626D+00,
     4    0.11210931094589871922652042018135D+00,
     5    0.11210931094589871922652042018135D+00,
     6    0.11210931094589871922652042018134D+00,
     7    0.11210931094589871922652042018134D+00,
     8    0.11210931094589871922652042018135D+00,
     9    0.98135655541423588872017075826617D-01,
     *    0.98135655541423588872017075826610D-01,
     1    0.18073886335748980653741212234524D+00,
     2    0.98135655541423588872017075826612D-01,
     3    0.98135655541423588872017075826615D-01,
     4    0.18073886335748980653741212234524D+00,
     5    0.98135655541423588872017075826609D-01,
     6    0.98135655541423588872017075826614D-01,
     7    0.18073886335748980653741212234524D+00,
     8    0.51285513267982736768147016833490D-01,
     9    0.51285513267982736768147016833493D-01,
     *    0.51285513267982736768147016833488D-01,
     1    0.51285513267982736768147016833492D-01,
     2    0.51285513267982736768147016833492D-01,
     3    0.51285513267982736768147016833488D-01,
     4    0.35032313798304785016512968297105D-01,
     5    0.35032313798304785016512968297105D-01,
     6    0.35032313798304785016512968297106D-01/

c    ... interpolation of order  8 , quadratures of order  12
c                   total number of elements is   45
      data xs8/
     1    0.20516036488748794939173449547564D+00,
     2   -0.20516036488748794939173449547564D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.90711134251864640537021157706461D-01,
     5    0.00000000000000000000000000000000D+00,
     6    0.90711134251864640537021157706465D-01,
     7   -0.16620379171352867557834899983967D+00,
     8    0.16620379171352867557834899983967D+00,
     9   -0.40379064443017014732825569786981D+00,
     *    0.40379064443017014732825569786981D+00,
     1    0.23758685271664147174990669803014D+00,
     2   -0.23758685271664147174990669803013D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.46421682434455320494555381453175D+00,
     5    0.46421682434455320494555381453175D+00,
     6   -0.45531505394582974340183412137538D+00,
     7   -0.55655572497889347304825891793069D+00,
     8   -0.32329745366102194483832500536844D+00,
     9   -0.62679636733291862896129092663374D+00,
     *    0.45531505394582974340183412137538D+00,
     1    0.32329745366102194483832500536844D+00,
     2    0.55655572497889347304825891793069D+00,
     3    0.62679636733291862896129092663374D+00,
     4   -0.10124067103306372964642479655531D+00,
     5    0.10124067103306372964642479655531D+00,
     6   -0.30349891367189668412296592126530D+00,
     7    0.30349891367189668412296592126530D+00,
     8   -0.56460207445746509277844994473446D+00,
     9   -0.74789268384128778566827756684332D+00,
     *   -0.67968366084302095650296423233284D+00,
     1    0.56460207445746509277844994473446D+00,
     2    0.74789268384128778566827756684333D+00,
     3    0.67968366084302095650296423233284D+00,
     4    0.18329060938382269288982762210887D+00,
     5   -0.18329060938382269288982762210887D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.80350234277164574818900967467006D+00,
     8   -0.86825863998020415683705183135578D+00,
     9    0.86825863998020415683705183135578D+00,
     *    0.80350234277164574818900967467006D+00,
     1    0.64756297208558408648042156685719D-01,
     2   -0.64756297208558408648042156685719D-01,
     3    0.96470904949707594301679684848496D+00,
     4   -0.96470904949707594301679684848496D+00,
     5    0.00000000000000000000000000000000D+00/
      data ys8/
     1   -0.11844939189483301335434212337344D+00,
     2   -0.11844939189483301335434212337344D+00,
     3   -0.10474419555762066429527866825845D+00,
     4    0.52372097778810332147639334129221D-01,
     5    0.23689878378966602670868424674688D+00,
     6    0.52372097778810332147639334129225D-01,
     7   -0.37029947062988011900253113524399D+00,
     8   -0.37029947062988011900253113524398D+00,
     9    0.41213029485726650222709476009725D-01,
     *    0.41213029485726650222709476009726D-01,
     1    0.32908644114415346877982165923426D+00,
     2    0.32908644114415346877982165923426D+00,
     3   -0.53603141699536202354894551180770D+00,
     4    0.26801570849768101177447275590385D+00,
     5    0.26801570849768101177447275590385D+00,
     6   -0.37977892630946916267739333797277D+00,
     7   -0.20442494028783608712868161486860D+00,
     8   -0.53710623091396866518430641005244D+00,
     9   -0.11430692392283039630310531384574D-01,
     *   -0.37977892630946916267739333797277D+00,
     1   -0.53710623091396866518430641005243D+00,
     2   -0.20442494028783608712868161486860D+00,
     3   -0.11430692392283039630310531384574D-01,
     4    0.58420386659730524980607495284136D+00,
     5    0.58420386659730524980607495284136D+00,
     6    0.54853692330625170481461694143701D+00,
     7    0.54853692330625170481461694143701D+00,
     8   -0.53761892500839975622619919962219D+00,
     9   -0.22015027700535802246619469178262D+00,
     *   -0.39241554455150844982135853882496D+00,
     1   -0.53761892500839975622619919962220D+00,
     2   -0.22015027700535802246619469178262D+00,
     3   -0.39241554455150844982135853882496D+00,
     4    0.75776920201375777869239389140481D+00,
     5    0.75776920201375777869239389140482D+00,
     6    0.78483108910301689964271707764992D+00,
     7   -0.53867642514387384172282366064052D+00,
     8   -0.42651522826862001562248282818680D+00,
     9   -0.42651522826862001562248282818680D+00,
     *   -0.53867642514387384172282366064052D+00,
     1    0.96519165341249385734530648882732D+00,
     2    0.96519165341249385734530648882732D+00,
     3   -0.55697502941680480145395360954236D+00,
     4   -0.55697502941680480145395360954236D+00,
     5    0.11139500588336096029079072190847D+01/
      data ws8/
     1    0.24114357707352127817812031228770D+00,
     2    0.24114357707352127817812031228771D+00,
     3    0.47865001647551992128159146353719D-01,
     4    0.47865001647551992128159146353705D-01,
     5    0.24114357707352127817812031228770D+00,
     6    0.47865001647551992128159146353715D-01,
     7    0.18930256408231410457449327601011D+00,
     8    0.18930256408231410457449327601011D+00,
     9    0.18930256408231410457449327601011D+00,
     *    0.18930256408231410457449327601011D+00,
     1    0.18930256408231410457449327601011D+00,
     2    0.18930256408231410457449327601011D+00,
     3    0.97119879062148816495200497026437D-01,
     4    0.97119879062148816495200497026436D-01,
     5    0.97119879062148816495200497026435D-01,
     6    0.13487307603332585040098581866490D+00,
     7    0.13487307603332585040098581866490D+00,
     8    0.73619268852476882982180570920356D-01,
     9    0.73619268852476882982180570920356D-01,
     *    0.13487307603332585040098581866490D+00,
     1    0.73619268852476882982180570920359D-01,
     2    0.13487307603332585040098581866491D+00,
     3    0.73619268852476882982180570920359D-01,
     4    0.13487307603332585040098581866490D+00,
     5    0.13487307603332585040098581866490D+00,
     6    0.73619268852476882982180570920360D-01,
     7    0.73619268852476882982180570920357D-01,
     8    0.63079415370683269216366608890868D-01,
     9    0.63079415370683269216366608890868D-01,
     *    0.90693664251075959967636797593457D-01,
     1    0.63079415370683269216366608890865D-01,
     2    0.63079415370683269216366608890868D-01,
     3    0.90693664251075959967636797593455D-01,
     4    0.63079415370683269216366608890869D-01,
     5    0.63079415370683269216366608890865D-01,
     6    0.90693664251075959967636797593455D-01,
     7    0.54555203186548860722184589054270D-01,
     8    0.54555203186548860722184589054269D-01,
     9    0.54555203186548860722184589054268D-01,
     *    0.54555203186548860722184589054269D-01,
     1    0.54555203186548860722184589054269D-01,
     2    0.54555203186548860722184589054269D-01,
     3    0.11990194218189112100837020966775D-01,
     4    0.11990194218189112100837020966775D-01,
     5    0.11990194218189112100837020966776D-01/

c    ... interpolation of order  9 , quadratures of order  12
c                   total number of elements is   55
      data xs9/
     1    0.00000000000000000000000000000000D+00,
     2    0.00000000000000000000000000000000D+00,
     3   -0.35066152902965686967739457602323D+00,
     4    0.23347122357879681351429143207491D+00,
     5   -0.23347122357879681351429143207491D+00,
     6    0.35066152902965686967739457602323D+00,
     7   -0.39668093054032974038640281174374D+00,
     8    0.14802024416459100081148296461063D+00,
     9   -0.14802024416459100081148296461063D+00,
     *    0.39668093054032974038640281174374D+00,
     1    0.00000000000000000000000000000000D+00,
     2    0.85450979414205812702808467464282D-01,
     3   -0.85450979414205812702808467464285D-01,
     4    0.28173742729893881964330065342565D+00,
     5   -0.18115349823219147383605178906743D+00,
     6    0.46289092553113029347935244249307D+00,
     7    0.18115349823219147383605178906742D+00,
     8   -0.28173742729893881964330065342565D+00,
     9   -0.46289092553113029347935244249307D+00,
     *    0.14026417883430032584158855674864D+00,
     1    0.39884277647667809302839857581502D+00,
     2    0.53910695531097841886998713256367D+00,
     3   -0.14026417883430032584158855674864D+00,
     4   -0.39884277647667809302839857581502D+00,
     5   -0.53910695531097841886998713256367D+00,
     6    0.25577489640907857647624959549890D+00,
     7    0.84906061504572525700980054974206D-01,
     8   -0.84906061504572525700980054974204D-01,
     9   -0.25577489640907857647624959549890D+00,
     *    0.67098402709694741919333404161985D+00,
     1    0.61201224006530979454163414386829D+00,
     2    0.52710617856073726884065408889409D+00,
     3    0.41520913068786884271708444612096D+00,
     4   -0.41520913068786884271708444612096D+00,
     5   -0.67098402709694741919333404161985D+00,
     6   -0.52710617856073726884065408889408D+00,
     7   -0.61201224006530979454163414386829D+00,
     8    0.80029559971108995261372269216019D+00,
     9    0.14525074153984688234392281671550D+00,
     *    0.00000000000000000000000000000000D+00,
     1   -0.14525074153984688234392281671550D+00,
     2    0.74033360380669215240465924157181D+00,
     3    0.65504485817124307026979987544468D+00,
     4   -0.65504485817124307026979987544468D+00,
     5   -0.80029559971108995261372269216019D+00,
     6   -0.74033360380669215240465924157180D+00,
     7    0.58312617957107113488316137615012D-01,
     8   -0.58312617957107113488316137615012D-01,
     9    0.88324365942340939457450853976045D+00,
     *    0.82493104146630228108619240214544D+00,
     1   -0.82493104146630228108619240214543D+00,
     2   -0.88324365942340939457450853976044D+00,
     3    0.95758929627257165047834661227590D+00,
     4    0.00000000000000000000000000000000D+00,
     5   -0.95758929627257165047834661227589D+00/
      data ys9/
     1    0.00000000000000000000000000000000D+00,
     2   -0.40490905635943632642427490826196D+00,
     3    0.20245452817971816321213745413098D+00,
     4   -0.36124381846631850871225947594837D-01,
     5   -0.36124381846631850871225947594838D-01,
     6    0.20245452817971816321213745413098D+00,
     7   -0.22902384202985061568070039916829D+00,
     8   -0.18412981974855853792563913977813D+00,
     9   -0.18412981974855853792563913977814D+00,
     *   -0.22902384202985061568070039916829D+00,
     1    0.45804768405970123136140079833657D+00,
     2    0.22025420159519038879686508737297D+00,
     3    0.22025420159519038879686508737297D+00,
     4   -0.37183922142983123092707811918839D+00,
     5    0.42991137995266803443054523044165D+00,
     6   -0.58072158522836803503467111253267D-01,
     7    0.42991137995266803443054523044165D+00,
     8   -0.37183922142983123092707811918838D+00,
     9   -0.58072158522836803503467111253266D-01,
     *   -0.54152553013394077298552010334832D+00,
     1    0.39223510717843803903695650505551D+00,
     2    0.14929042295550273394856359829281D+00,
     3   -0.54152553013394077298552010334832D+00,
     4    0.39223510717843803903695650505551D+00,
     5    0.14929042295550273394856359829281D+00,
     6    0.62711391203899332087910682073983D+00,
     7    0.65767032563260908344884091940548D+00,
     8    0.65767032563260908344884091940549D+00,
     9    0.62711391203899332087910682073983D+00,
     *   -0.92049398078901419772773958976214D-01,
     1   -0.25530435661806073782281702872065D+00,
     2   -0.40236596901454834562602389068483D+00,
     3   -0.53506451396009190110633286176362D+00,
     4   -0.53506451396009190110633286176361D+00,
     5   -0.92049398078901419772773958976212D-01,
     6   -0.40236596901454834562602389068483D+00,
     7   -0.25530435661806073782281702872065D+00,
     8   -0.29432977046842406205307433323031D+00,
     9    0.84024120512091818805641695098691D+00,
     *    0.85486361089583892760935253846030D+00,
     1    0.84024120512091818805641695098691D+00,
     2   -0.42743180544791946380467626923015D+00,
     3   -0.54591143465249412600334261775661D+00,
     4   -0.54591143465249412600334261775661D+00,
     5   -0.29432977046842406205307433323030D+00,
     6   -0.42743180544791946380467626923015D+00,
     7    0.98621512338158350884654456361709D+00,
     8    0.98621512338158350884654456361709D+00,
     9   -0.44260735317876035863086347527625D+00,
     *   -0.54360777020282315021568108834084D+00,
     1   -0.54360777020282315021568108834083D+00,
     2   -0.44260735317876035863086347527625D+00,
     3   -0.55286443797607354211691156915833D+00,
     4    0.11057288759521470842338231383167D+01,
     5   -0.55286443797607354211691156915833D+00/
      data ws9/
     1    0.90689250874394410278770983907937D-01,
     2    0.15273355127777952252740822663099D+00,
     3    0.15273355127777952252740822663099D+00,
     4    0.14274785597842027364588940862543D+00,
     5    0.14274785597842027364588940862544D+00,
     6    0.15273355127777952252740822663099D+00,
     7    0.48581285239134304519623674001920D-01,
     8    0.14274785597842027364588940862544D+00,
     9    0.14274785597842027364588940862543D+00,
     *    0.48581285239134304519623674001923D-01,
     1    0.48581285239134304519623674001925D-01,
     2    0.14274785597842027364588940862543D+00,
     3    0.14274785597842027364588940862544D+00,
     4    0.13937524079794645078908058213778D+00,
     5    0.13937524079794645078908058213778D+00,
     6    0.13937524079794645078908058213779D+00,
     7    0.13937524079794645078908058213778D+00,
     8    0.13937524079794645078908058213778D+00,
     9    0.13937524079794645078908058213778D+00,
     *    0.66908126223701625968106972193490D-01,
     1    0.66908126223701625968106972193490D-01,
     2    0.66908126223701625968106972193487D-01,
     3    0.66908126223701625968106972193487D-01,
     4    0.66908126223701625968106972193488D-01,
     5    0.66908126223701625968106972193486D-01,
     6    0.75341005611652539274294578087265D-01,
     7    0.10395502368907744927343475279133D+00,
     8    0.10395502368907744927343475279133D+00,
     9    0.75341005611652539274294578087265D-01,
     *    0.75341005611652539274294578087268D-01,
     1    0.10395502368907744927343475279132D+00,
     2    0.10395502368907744927343475279133D+00,
     3    0.75341005611652539274294578087264D-01,
     4    0.75341005611652539274294578087266D-01,
     5    0.75341005611652539274294578087267D-01,
     6    0.10395502368907744927343475279133D+00,
     7    0.10395502368907744927343475279132D+00,
     8    0.41717641911882439443162732853889D-01,
     9    0.41717641911882439443162732853890D-01,
     *    0.65777026923135690672659272005396D-01,
     1    0.41717641911882439443162732853890D-01,
     2    0.65777026923135690672659272005397D-01,
     3    0.41717641911882439443162732853893D-01,
     4    0.41717641911882439443162732853890D-01,
     5    0.41717641911882439443162732853891D-01,
     6    0.65777026923135690672659272005399D-01,
     7    0.34476879268154390402762443461535D-01,
     8    0.34476879268154390402762443461535D-01,
     9    0.34476879268154390402762443461533D-01,
     *    0.34476879268154390402762443461535D-01,
     1    0.34476879268154390402762443461536D-01,
     2    0.34476879268154390402762443461534D-01,
     3    0.13306210610000435922964393733361D-01,
     4    0.13306210610000435922964393733360D-01,
     5    0.13306210610000435922964393733362D-01/

c    ... interpolation of order  10 , quadratures of order  14
c                   total number of elements is   66
      data xs10/
     1    0.13501182435355446815200044501090D+00,
     2   -0.13501182435355446815200044501089D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.00000000000000000000000000000000D+00,
     5    0.16337171283177936471413805788461D+00,
     6   -0.16337171283177936471413805788460D+00,
     7    0.24701046872819527385841249016691D+00,
     8   -0.24701046872819527385841249016691D+00,
     9    0.36319037680965423912386529886646D+00,
     *   -0.36319037680965423912386529886646D+00,
     1    0.11617990808145896526545280869953D+00,
     2   -0.11617990808145896526545280869955D+00,
     3    0.13717899839604643321949773320417D+00,
     4   -0.13717899839604643321949773320415D+00,
     5    0.43178713579487924516444658413079D+00,
     6   -0.43178713579487924516444658413079D+00,
     7    0.29460813739883281194494885092662D+00,
     8   -0.29460813739883281194494885092664D+00,
     9    0.00000000000000000000000000000000D+00,
     *    0.46917178062313540964383711494954D+00,
     1    0.42030397743172869731610235180418D+00,
     2    0.45624211007004858022809513264495D+00,
     3    0.61382887304410740965501107800026D+00,
     4    0.24801839860816113638553893632581D+00,
     5    0.60089678246248780450615552565432D+00,
     6   -0.42030397743172869731610235180418D+00,
     7   -0.24801839860816113638553893632581D+00,
     8   -0.45624211007004858022809513264495D+00,
     9   -0.46917178062313540964383711494954D+00,
     *   -0.61382887304410740965501107800028D+00,
     1   -0.60089678246248780450615552565431D+00,
     2    0.19352489561237871233890872619610D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.35287838385432666812061658932851D+00,
     5   -0.19352489561237871233890872619610D+00,
     6   -0.35287838385432666812061658932851D+00,
     7    0.74077588026518566788857113608013D+00,
     8    0.66440534827566590596814555246672D+00,
     9    0.59716300099712267761710290608268D+00,
     *    0.50787500396299629061531286606806D+00,
     1    0.23290087630218937727325827001208D+00,
     2   -0.50787500396299629061531286606807D+00,
     3    0.67242347278543228351042646384026D-01,
     4   -0.59716300099712267761710290608268D+00,
     5   -0.67242347278543228351042646384025D-01,
     6   -0.66440534827566590596814555246671D+00,
     7   -0.23290087630218937727325827001208D+00,
     8   -0.74077588026518566788857113608014D+00,
     9    0.81454925049560274054389077961975D+00,
     *    0.68768789940639668871855794635922D+00,
     1    0.78313938074696497344260983820633D+00,
     2    0.12686135108920605182533283326050D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.12686135108920605182533283326050D+00,
     5   -0.68768789940639668871855794635924D+00,
     6   -0.81454925049560274054389077961973D+00,
     7   -0.78313938074696497344260983820631D+00,
     8    0.91207709015122838724951740486360D+00,
     9    0.86462751558537977936308764178697D+00,
     *    0.96706777513545713648610926857322D+00,
     1    0.47449574565848607886429763076638D-01,
     2   -0.47449574565848607886429763076638D-01,
     3   -0.86462751558537977936308764178695D+00,
     4   -0.91207709015122838724951740486358D+00,
     5    0.00000000000000000000000000000000D+00,
     6   -0.96706777513545713648610926857320D+00/
      data ys10/
     1   -0.77949113134307143704527067677056D-01,
     2   -0.77949113134307143704527067677053D-01,
     3    0.15589822626861428740905413535410D+00,
     4   -0.18864540476279610782250397938597D+00,
     5    0.94322702381398053911251989692972D-01,
     6    0.94322702381398053911251989692987D-01,
     7   -0.27676456302339180101907058428379D+00,
     8   -0.27676456302339180101907058428382D+00,
     9   -0.75535059407622866822010210630489D-01,
     *   -0.75535059407622866822010210630497D-01,
     1    0.35229962243101466784108079491429D+00,
     2    0.35229962243101466784108079491430D+00,
     3   -0.41938450651646140429584245319211D+00,
     4   -0.41938450651646140429584245319214D+00,
     5    0.90891755781549728346095499296769D-01,
     6    0.90891755781549728346095499296764D-01,
     7    0.32849275073491167594974695389536D+00,
     8    0.32849275073491167594974695389535D+00,
     9   -0.54175290767788654793615048117534D+00,
     *    0.27087645383894327396807524058767D+00,
     1   -0.46612591566508110673878503650081D+00,
     2   -0.26341150506458541556105897568882D+00,
     3   -0.13093096393497787999640574244627D+00,
     4   -0.55066234901939292007682649040839D+00,
     5    0.60540940709093855834497320334267D-01,
     6   -0.46612591566508110673878503650081D+00,
     7   -0.55066234901939292007682649040840D+00,
     8   -0.26341150506458541556105897568883D+00,
     9    0.27087645383894327396807524058766D+00,
     *   -0.13093096393497787999640574244628D+00,
     1    0.60540940709093855834497320334270D-01,
     2    0.59705687960005898673519077894707D+00,
     3    0.52682301012917083112211795137765D+00,
     4    0.49012140831029906424232917007413D+00,
     5    0.59705687960005898673519077894708D+00,
     6    0.49012140831029906424232917007414D+00,
     7   -0.15875638662514939135301169561268D+00,
     8   -0.30594983207356430442220526717261D+00,
     9   -0.42241699398019200140226428092763D+00,
     *   -0.56215253750785569829694619976219D+00,
     1    0.72090892413300508964995789537485D+00,
     2   -0.56215253750785569829694619976217D+00,
     3    0.72836682605375630582446954810026D+00,
     4   -0.42241699398019200140226428092763D+00,
     5    0.72836682605375630582446954810026D+00,
     6   -0.30594983207356430442220526717261D+00,
     7    0.72090892413300508964995789537485D+00,
     8   -0.15875638662514939135301169561267D+00,
     9   -0.32379335863961867451625918532847D+00,
     *   -0.54352366424295688763047343801300D+00,
     1   -0.45214573228725705214203323059113D+00,
     2    0.86731702288257556214673262334145D+00,
     3    0.90429146457451410428406646118229D+00,
     4    0.86731702288257556214673262334145D+00,
     5   -0.54352366424295688763047343801300D+00,
     6   -0.32379335863961867451625918532846D+00,
     7   -0.45214573228725705214203323059114D+00,
     8   -0.47179790422345044791177424293065D+00,
     9   -0.55398297816902818939934018922937D+00,
     *   -0.55833684029906865538044754234252D+00,
     1    0.10257808823924786373111144321600D+01,
     2    0.10257808823924786373111144321600D+01,
     3   -0.55398297816902818939934018922937D+00,
     4   -0.47179790422345044791177424293063D+00,
     5    0.11166736805981373107608950846851D+01,
     6   -0.55833684029906865538044754234252D+00/
      data ws10/
     1    0.66918353398429739991134940522720D-01,
     2    0.66918353398429739991134940522726D-01,
     3    0.66918353398429739991134940522720D-01,
     4    0.15436661067613867772312173433341D+00,
     5    0.15436661067613867772312173433341D+00,
     6    0.15436661067613867772312173433341D+00,
     7    0.11894620713410482519460419789437D+00,
     8    0.11894620713410482519460419789439D+00,
     9    0.11894620713410482519460419789437D+00,
     *    0.11894620713410482519460419789439D+00,
     1    0.11894620713410482519460419789439D+00,
     2    0.11894620713410482519460419789438D+00,
     3    0.12001468524331095108293594326230D+00,
     4    0.12001468524331095108293594326229D+00,
     5    0.12001468524331095108293594326230D+00,
     6    0.12001468524331095108293594326229D+00,
     7    0.12001468524331095108293594326229D+00,
     8    0.12001468524331095108293594326229D+00,
     9    0.54463544412630283281259358919890D-01,
     *    0.54463544412630283281259358919895D-01,
     1    0.95308618475728578890643333078943D-01,
     2    0.10715624779498037562612988573818D+00,
     3    0.95308618475728578890643333078935D-01,
     4    0.48800178449523192130232983413060D-01,
     5    0.48800178449523192130232983413052D-01,
     6    0.95308618475728578890643333078943D-01,
     7    0.48800178449523192130232983413047D-01,
     8    0.10715624779498037562612988573817D+00,
     9    0.54463544412630283281259358919889D-01,
     *    0.95308618475728578890643333078938D-01,
     1    0.48800178449523192130232983413054D-01,
     2    0.95308618475728578890643333078939D-01,
     3    0.10715624779498037562612988573817D+00,
     4    0.48800178449523192130232983413053D-01,
     5    0.95308618475728578890643333078939D-01,
     6    0.48800178449523192130232983413054D-01,
     7    0.25665445003257545932746616849624D-01,
     8    0.65325885699422428667426164766625D-01,
     9    0.65325885699422428667426164766633D-01,
     *    0.25665445003257545932746616849603D-01,
     1    0.25665445003257545932746616849609D-01,
     2    0.25665445003257545932746616849615D-01,
     3    0.65325885699422428667426164766637D-01,
     4    0.65325885699422428667426164766626D-01,
     5    0.65325885699422428667426164766629D-01,
     6    0.65325885699422428667426164766621D-01,
     7    0.25665445003257545932746616849606D-01,
     8    0.25665445003257545932746616849614D-01,
     9    0.41016025444534472050618680102846D-01,
     *    0.41016025444534472050618680102868D-01,
     1    0.53634803081013574957313153683558D-01,
     2    0.41016025444534472050618680102861D-01,
     3    0.53634803081013574957313153683558D-01,
     4    0.41016025444534472050618680102859D-01,
     5    0.41016025444534472050618680102855D-01,
     6    0.41016025444534472050618680102854D-01,
     7    0.53634803081013574957313153683558D-01,
     8    0.22759393838324235124083492047875D-01,
     9    0.22759393838324235124083492047881D-01,
     *    0.74589333635799849368336052800582D-02,
     1    0.22759393838324235124083492047876D-01,
     2    0.22759393838324235124083492047874D-01,
     3    0.22759393838324235124083492047877D-01,
     4    0.22759393838324235124083492047880D-01,
     5    0.74589333635799849368336052800594D-02,
     6    0.74589333635799849368336052800633D-02/

c    ... interpolation of order  11 , quadratures of order  15
c                   total number of elements is   78
      data xs11/
     1    0.22880461611555601829601384038373D+00,
     2    0.11106060578878666439744288536202D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.00000000000000000000000000000000D+00,
     5   -0.22880461611555601829601384038373D+00,
     6   -0.11106060578878666439744288536202D+00,
     7    0.30026839470672109521499410013610D+00,
     8    0.15303449728626418246768438701493D+00,
     9    0.14723389742045691274730971312116D+00,
     *   -0.15303449728626418246768438701494D+00,
     1   -0.14723389742045691274730971312117D+00,
     2   -0.30026839470672109521499410013609D+00,
     3    0.34515313390373500123745540586188D+00,
     4   -0.34515313390373500123745540586187D+00,
     5    0.00000000000000000000000000000000D+00,
     6    0.58070720301600444614262408072055D-01,
     7   -0.58070720301600444614262408072059D-01,
     8    0.28645046198620375779489171321213D+00,
     9   -0.28645046198620375779489171321214D+00,
     *    0.39011837251187992304700926841089D+00,
     1    0.33204765221027947843274686033883D+00,
     2    0.49431390353283360820075509190778D+00,
     3    0.20786344154662985040586337869563D+00,
     4    0.53038115773586274738186357080414D+00,
     5    0.42104005847451079288245424195914D+00,
     6   -0.33204765221027947843274686033882D+00,
     7   -0.39011837251187992304700926841090D+00,
     8   -0.20786344154662985040586337869563D+00,
     9   -0.49431390353283360820075509190778D+00,
     *    0.10934109926135195449940932884499D+00,
     1   -0.42104005847451079288245424195914D+00,
     2   -0.10934109926135195449940932884499D+00,
     3   -0.53038115773586274738186357080413D+00,
     4    0.59645802199319744734796558396352D+00,
     5    0.13695947216273553746003930729524D+00,
     6    0.66181539536503701486481837517767D+00,
     7    0.55216333047164900869011554141458D+00,
     8    0.45949854983046190988792627666828D+00,
     9    0.29762810026041091270844109866591D+00,
     *    0.36418729510462610215637727651177D+00,
     1    0.00000000000000000000000000000000D+00,
     2   -0.13695947216273553746003930729525D+00,
     3   -0.29762810026041091270844109866591D+00,
     4   -0.45949854983046190988792627666828D+00,
     5   -0.59645802199319744734796558396352D+00,
     6   -0.36418729510462610215637727651176D+00,
     7   -0.55216333047164900869011554141457D+00,
     8   -0.66181539536503701486481837517768D+00,
     9    0.74903123743590256141652804599964D+00,
     *    0.68587253218247785403571761849972D+00,
     1    0.61805081981302609833776869940762D+00,
     2    0.55885076269205092162851250610332D+00,
     3    0.19018047474385163978801553989632D+00,
     4   -0.55885076269205092162851250610333D+00,
     5    0.67821712369451755697948919092098D-01,
     6   -0.61805081981302609833776869940760D+00,
     7   -0.67821712369451755697948919092100D-01,
     8   -0.68587253218247785403571761849972D+00,
     9   -0.19018047474385163978801553989632D+00,
     *   -0.74903123743590256141652804599963D+00,
     1    0.85475433973119100268541793551360D+00,
     2    0.10220092552125735245181891972870D+00,
     3    0.80313428362793987382080710412859D+00,
     4    0.75255341420993365023359901578489D+00,
     5    0.00000000000000000000000000000000D+00,
     6   -0.10220092552125735245181891972869D+00,
     7   -0.75255341420993365023359901578489D+00,
     8   -0.85475433973119100268541793551359D+00,
     9   -0.80313428362793987382080710412859D+00,
     *    0.93851189000886137703598418054695D+00,
     1    0.90217463268734488593653470210537D+00,
     2    0.95341907806105907957051882755092D+00,
     3    0.36337257321516491099449478441588D-01,
     4   -0.36337257321516491099449478441587D-01,
     5   -0.90217463268734488593653470210537D+00,
     6   -0.93851189000886137703598418054695D+00,
     7    0.00000000000000000000000000000000D+00,
     8   -0.95341907806105907957051882755092D+00/
      data ys11/
     1   -0.13210040670614525250190712589590D+00,
     2    0.64120870648518890153024238644440D-01,
     3   -0.12824174129703778030604847728888D+00,
     4    0.26420081341229050500381425179180D+00,
     5   -0.13210040670614525250190712589590D+00,
     6    0.64120870648518890153024238644441D-01,
     7    0.33489778939851342593792420986930D-02,
     8    0.25836556882260076937213280967604D+00,
     9   -0.26171454671658590363151205177473D+00,
     *    0.25836556882260076937213280967604D+00,
     1   -0.26171454671658590363151205177473D+00,
     2    0.33489778939851342593792420986928D-02,
     3    0.19927425477096434995838456072656D+00,
     4    0.19927425477096434995838456072656D+00,
     5   -0.39854850954192869991676912145313D+00,
     6    0.41694274877294066524568851403067D+00,
     7    0.41694274877294066524568851403067D+00,
     8    0.40540227920048497008389917717492D+00,
     9    0.40540227920048497008389917717492D+00,
     *   -0.15818065538922360878081635647412D+00,
     1   -0.25876209338371705646487215755655D+00,
     2    0.45372237405598617507786900224926D-01,
     3   -0.45077451660608358759168607739985D+00,
     4    0.17995947800784343711767973417439D+00,
     5    0.36934381728393686243852270540119D+00,
     6   -0.25876209338371705646487215755654D+00,
     7   -0.15818065538922360878081635647412D+00,
     8   -0.45077451660608358759168607739985D+00,
     9    0.45372237405598617507786900224928D-01,
     *   -0.54930329529178029955620243957558D+00,
     1    0.36934381728393686243852270540119D+00,
     2   -0.54930329529178029955620243957558D+00,
     3    0.17995947800784343711767973417439D+00,
     4   -0.18621802331563543292645305444246D+00,
     5    0.60965681099494412268503054188933D+00,
     6   -0.38427969060352390929099612939725D-01,
     7   -0.31879164748444684571542575543703D+00,
     8   -0.42343878767930868975857748744688D+00,
     9    0.59236292953194028152031919423665D+00,
     *   -0.55393496047158789059121958129692D+00,
     1    0.63758329496889369143085151087405D+00,
     2    0.60965681099494412268503054188933D+00,
     3    0.59236292953194028152031919423665D+00,
     4   -0.42343878767930868975857748744688D+00,
     5   -0.18621802331563543292645305444245D+00,
     6   -0.55393496047158789059121958129692D+00,
     7   -0.31879164748444684571542575543703D+00,
     8   -0.38427969060352390929099612939728D-01,
     9   -0.21285188998910969864020304729268D+00,
     *   -0.31767492329851516419877247094214D+00,
     1   -0.43514557497872819197810238923986D+00,
     2   -0.54225413485303040337735585696436D+00,
     3    0.75510602484214010201755890425703D+00,
     4   -0.54225413485303040337735585696436D+00,
     5    0.75282049827724335617687486018200D+00,
     6   -0.43514557497872819197810238923986D+00,
     7    0.75282049827724335617687486018200D+00,
     8   -0.31767492329851516419877247094214D+00,
     9    0.75510602484214010201755890425704D+00,
     *   -0.21285188998910969864020304729267D+00,
     1   -0.37548118441255030564625261938471D+00,
     2    0.92797956440848109016789462818720D+00,
     3   -0.46368979484800833460272467077356D+00,
     4   -0.55249837999593078452164200880250D+00,
     5    0.92737958969601666920544934154713D+00,
     6    0.92797956440848109016789462818721D+00,
     7   -0.55249837999593078452164200880250D+00,
     8   -0.37548118441255030564625261938470D+00,
     9   -0.46368979484800833460272467077357D+00,
     *   -0.49989144174190007141136939770261D+00,
     1   -0.56282941763047080888325386963920D+00,
     2   -0.55045676136907727958986757707087D+00,
     3    0.10627208593723708802946232673418D+01,
     4    0.10627208593723708802946232673418D+01,
     5   -0.56282941763047080888325386963920D+00,
     6   -0.49989144174190007141136939770262D+00,
     7    0.11009135227381545591797351541417D+01,
     8   -0.55045676136907727958986757707087D+00/
      data ws11/
     1    0.66395054700258147873285339025288D-02,
     2    0.12867429392535614250764221061472D+00,
     3    0.12867429392535614250764221061473D+00,
     4    0.66395054700258147873285339025451D-02,
     5    0.66395054700258147873285339025298D-02,
     6    0.12867429392535614250764221061473D+00,
     7    0.10638115001387701309883941973438D+00,
     8    0.10638115001387701309883941973438D+00,
     9    0.10638115001387701309883941973438D+00,
     *    0.10638115001387701309883941973437D+00,
     1    0.10638115001387701309883941973438D+00,
     2    0.10638115001387701309883941973438D+00,
     3    0.76374140919179735851259126653890D-01,
     4    0.76374140919179735851259126653889D-01,
     5    0.76374140919179735851259126653886D-01,
     6    0.87400844155886508109544762622571D-01,
     7    0.87400844155886508109544762622583D-01,
     8    0.10678003959078819378755329977726D+00,
     9    0.10678003959078819378755329977725D+00,
     *    0.87400844155886508109544762622588D-01,
     1    0.87400844155886508109544762622578D-01,
     2    0.10678003959078819378755329977726D+00,
     3    0.10678003959078819378755329977725D+00,
     4    0.43569102992560392198857927010204D-01,
     5    0.43569102992560392198857927010215D-01,
     6    0.87400844155886508109544762622582D-01,
     7    0.87400844155886508109544762622583D-01,
     8    0.10678003959078819378755329977725D+00,
     9    0.10678003959078819378755329977726D+00,
     *    0.43569102992560392198857927010211D-01,
     1    0.43569102992560392198857927010211D-01,
     2    0.43569102992560392198857927010205D-01,
     3    0.43569102992560392198857927010207D-01,
     4    0.87624676673495813535678017646019D-01,
     5    0.87624676673495813535678017646017D-01,
     6    0.38880945189007585825701836484926D-01,
     7    0.33210189140726742055524359182413D-01,
     8    0.87624676673495813535678017646018D-01,
     9    0.38880945189007585825701836484927D-01,
     *    0.38880945189007585825701836484929D-01,
     1    0.33210189140726742055524359182413D-01,
     2    0.87624676673495813535678017646015D-01,
     3    0.38880945189007585825701836484931D-01,
     4    0.87624676673495813535678017646020D-01,
     5    0.87624676673495813535678017646015D-01,
     6    0.38880945189007585825701836484930D-01,
     7    0.33210189140726742055524359182406D-01,
     8    0.38880945189007585825701836484926D-01,
     9    0.41875839555784203666546888311396D-01,
     *    0.50470832171940181106047842678353D-01,
     1    0.50470832171940181106047842678357D-01,
     2    0.41875839555784203666546888311389D-01,
     3    0.41875839555784203666546888311395D-01,
     4    0.41875839555784203666546888311391D-01,
     5    0.50470832171940181106047842678354D-01,
     6    0.50470832171940181106047842678356D-01,
     7    0.50470832171940181106047842678363D-01,
     8    0.50470832171940181106047842678364D-01,
     9    0.41875839555784203666546888311389D-01,
     *    0.41875839555784203666546888311396D-01,
     1    0.31581156144545326038855405942150D-01,
     2    0.31581156144545326038855405942150D-01,
     3    0.57138409495813805963426934345645D-01,
     4    0.31581156144545326038855405942154D-01,
     5    0.57138409495813805963426934345644D-01,
     6    0.31581156144545326038855405942154D-01,
     7    0.31581156144545326038855405942153D-01,
     8    0.31581156144545326038855405942151D-01,
     9    0.57138409495813805963426934345645D-01,
     *    0.96464861630464074351389718478274D-02,
     1    0.96464861630464074351389718478302D-02,
     2    0.92126870502196038916655924996918D-02,
     3    0.96464861630464074351389718478284D-02,
     4    0.96464861630464074351389718478281D-02,
     5    0.96464861630464074351389718478273D-02,
     6    0.96464861630464074351389718478304D-02,
     7    0.92126870502196038916655924996931D-02,
     8    0.92126870502196038916655924996919D-02/

c    ... interpolation of order  12 , quadratures of order  15
c                   total number of elements is   91
      data xs12/
     1    0.00000000000000000000000000000000D+00,
     2   -0.26870937620652150232732576912607D+00,
     3    0.66443343128726836244543450933283D-01,
     4   -0.12447776046752229083777800048181D+00,
     5    0.00000000000000000000000000000000D+00,
     6    0.19092110359624912708232145141512D+00,
     7   -0.19092110359624912708232145141511D+00,
     8    0.26870937620652150232732576912607D+00,
     9    0.12447776046752229083777800048182D+00,
     *   -0.66443343128726836244543450933309D-01,
     1   -0.32336186463515117627713250255708D+00,
     2    0.32336186463515117627713250255708D+00,
     3   -0.22544986216111057928884413828473D+00,
     4    0.22544986216111057928884413828472D+00,
     5   -0.35292141266920003538964943875126D+00,
     6    0.35292141266920003538964943875126D+00,
     7    0.00000000000000000000000000000000D+00,
     8    0.12747155050808945610080530046653D+00,
     9   -0.12747155050808945610080530046654D+00,
     *    0.12330554383242416490803124536550D+00,
     1   -0.12330554383242416490803124536550D+00,
     2    0.46264892395974538277431875430074D+00,
     3   -0.46264892395974538277431875430075D+00,
     4    0.33934338012732121786628750893526D+00,
     5   -0.33934338012732121786628750893525D+00,
     6    0.00000000000000000000000000000000D+00,
     7    0.42613028000780400955205487317995D+00,
     8    0.32449062843527410774806654428194D+00,
     9    0.50268837644971736205177617148707D+00,
     *   -0.32449062843527410774806654428195D+00,
     1    0.54374669452872412813210903892972D+00,
     2   -0.42613028000780400955205487317995D+00,
     3    0.22250346861205253328092326455641D+00,
     4   -0.50268837644971736205177617148707D+00,
     5   -0.22250346861205253328092326455641D+00,
     6   -0.54374669452872412813210903892971D+00,
     7    0.48817861020974099478069194302056D+00,
     8   -0.48817861020974099478069194302056D+00,
     9    0.58169504089962324400430683478826D+00,
     *   -0.58169504089962324400430683478826D+00,
     1    0.76558096441913352499721298307120D-01,
     2   -0.76558096441913352499721298307121D-01,
     3    0.21925606609345002038404249464776D+00,
     4   -0.21925606609345002038404249464776D+00,
     5    0.35919157228757071072338357023186D+00,
     6   -0.35919157228757071072338357023185D+00,
     7    0.52249108176381176579171551206314D+00,
     8    0.43131085167925664162478563745336D+00,
     9    0.66284204221413048984289102126187D+00,
     *    0.59682918777769125376483353090450D+00,
     1    0.69984662767621282095990600326413D+00,
     2   -0.43131085167925664162478563745336D+00,
     3   -0.52249108176381176579171551206315D+00,
     4   -0.66284204221413048984289102126186D+00,
     5   -0.59682918777769125376483353090450D+00,
     6   -0.69984662767621282095990600326413D+00,
     7    0.14035096045031872405117550919870D+00,
     8   -0.14035096045031872405117550919871D+00,
     9    0.00000000000000000000000000000000D+00,
     *   -0.26853577599695617933512036581077D+00,
     1    0.26853577599695617933512036581077D+00,
     2    0.62365906452311527264267315414510D+00,
     3    0.77944327727709722000069245120557D+00,
     4    0.69570696604008791494287656185437D+00,
     5    0.74426706380088879432205153223705D+00,
     6   -0.62365906452311527264267315414510D+00,
     7   -0.69570696604008791494287656185437D+00,
     8   -0.74426706380088879432205153223704D+00,
     9   -0.77944327727709722000069245120558D+00,
     *    0.15578421275398194735801929706047D+00,
     1   -0.15578421275398194735801929706047D+00,
     2    0.48560097760800879379174970382675D-01,
     3   -0.48560097760800879379174970382665D-01,
     4    0.87338583507280976011502062058545D+00,
     5    0.77537190645119340221669585620038D+00,
     6    0.81916327057559373371192665836813D+00,
     7   -0.77537190645119340221669585620038D+00,
     8   -0.81916327057559373371192665836810D+00,
     9   -0.87338583507280976011502062058544D+00,
     *    0.98013928621616357898324764385066D-01,
     1   -0.98013928621616357898324764385066D-01,
     2    0.00000000000000000000000000000000D+00,
     3    0.93223627960719464751808667028474D+00,
     4    0.90162484592863667097570330073941D+00,
     5    0.97238501150189875288828917925096D+00,
     6   -0.90162484592863667097570330073942D+00,
     7   -0.93223627960719464751808667028474D+00,
     8    0.30611433678557976542383369545317D-01,
     9   -0.30611433678557976542383369545323D-01,
     *    0.00000000000000000000000000000000D+00,
     1   -0.97238501150189875288828917925097D+00/
      data ys12/
     1    0.00000000000000000000000000000000D+00,
     2    0.15513943068661160981690377172181D+00,
     3    0.18209561906932061201409058591368D+00,
     4   -0.14858943259650397141299724541960D+00,
     5   -0.31027886137322321963380754344362D+00,
     6   -0.33506186472816640601093340494083D-01,
     7   -0.33506186472816640601093340494098D-01,
     8    0.15513943068661160981690377172181D+00,
     9   -0.14858943259650397141299724541959D+00,
     *    0.18209561906932061201409058591368D+00,
     1   -0.18669305959276385927381329099685D+00,
     2   -0.18669305959276385927381329099685D+00,
     3   -0.27735500660721006551019613325621D+00,
     4   -0.27735500660721006551019613325621D+00,
     5   -0.56567804607616792387816131883231D-01,
     6   -0.56567804607616792387816131883235D-01,
     7    0.37338611918552771854762658199370D+00,
     8    0.33392281121482685789801226513943D+00,
     9    0.33392281121482685789801226513944D+00,
     *   -0.46303047265267610509373332866565D+00,
     1   -0.46303047265267610509373332866562D+00,
     2    0.12472950294000311672307868340331D+00,
     3    0.12472950294000311672307868340332D+00,
     4    0.33830096971267298837065464526232D+00,
     5    0.33830096971267298837065464526231D+00,
     6   -0.56370010403442270386999193948379D+00,
     7   -0.33442810705112425615627267727402D+00,
     8   -0.44051984923763983381621685209954D+00,
     9   -0.20182559428297224263356604767455D+00,
     *   -0.44051984923763983381621685209955D+00,
     1   -0.60757202896104591127152856781767D-01,
     2   -0.33442810705112425615627267727403D+00,
     3   -0.54322113940054172045925127746338D+00,
     4   -0.20182559428297224263356604767454D+00,
     5   -0.54322113940054172045925127746337D+00,
     6   -0.60757202896104591127152856781768D-01,
     7    0.28185005201721135193499596974189D+00,
     8    0.28185005201721135193499596974189D+00,
     9    0.78916913452079894619570113292466D-01,
     *    0.78916913452079894619570113292467D-01,
     1    0.53625370133409649878983872494857D+00,
     2    0.53625370133409649878983872494857D+00,
     3    0.50127705213374442494336970888132D+00,
     4    0.50127705213374442494336970888132D+00,
     5    0.46430422594846182583968116417091D+00,
     6    0.46430422594846182583968116417091D+00,
     7   -0.46372369629954355755722280450347D+00,
     8   -0.55909584143920096403652635141929D+00,
     9   -0.22062870190850145363221897715542D+00,
     *   -0.34457949222367574857379292108418D+00,
     1   -0.93978233762537878611053378221799D-01,
     2   -0.55909584143920096403652635141930D+00,
     3   -0.46372369629954355755722280450348D+00,
     4   -0.22062870190850145363221897715541D+00,
     5   -0.34457949222367574857379292108418D+00,
     6   -0.93978233762537878611053378221793D-01,
     7    0.68435239820804501118944178165889D+00,
     8    0.68435239820804501118944178165888D+00,
     9    0.68915898444735149714758584216838D+00,
     *    0.65307407520173884264757972964109D+00,
     1    0.65307407520173884264757972964109D+00,
     2   -0.53995384312298160342196395425098D+00,
     3   -0.27012767161596537771128597459045D+00,
     4   -0.45773897514848844984067916688189D+00,
     5   -0.37363041860626965675807688875604D+00,
     6   -0.53995384312298160342196395425097D+00,
     7   -0.45773897514848844984067916688189D+00,
     8   -0.37363041860626965675807688875604D+00,
     9   -0.27012767161596537771128597459045D+00,
     *    0.81008151473894698113324992884143D+00,
     1    0.81008151473894698113324992884142D+00,
     2    0.83136939375475810659875605563792D+00,
     3    0.83136939375475810659875605563791D+00,
     4   -0.39107281083764686708574106870232D+00,
     5   -0.56083791505971577587019272383737D+00,
     6   -0.47294413477707328843400688647140D+00,
     7   -0.56083791505971577587019272383738D+00,
     8   -0.47294413477707328843400688647140D+00,
     9   -0.39107281083764686708574106870232D+00,
     *    0.95191072589736264295593379253970D+00,
     1    0.95191072589736264295593379253970D+00,
     2    0.94588826955414657686801377294279D+00,
     3   -0.50287982803035741369788961297798D+00,
     4   -0.55590038645414488510646478044335D+00,
     5   -0.56140674814657859019410326584199D+00,
     6   -0.55590038645414488510646478044333D+00,
     7   -0.50287982803035741369788961297797D+00,
     8    0.10587802144845022988043543934213D+01,
     9    0.10587802144845022988043543934213D+01,
     *    0.11228134962931571803882065316840D+01,
     1   -0.56140674814657859019410326584200D+00/
      data ws12/
     1    0.13264486877102940918037011085108D+00,
     2    0.12480709551825843363029253981082D+00,
     3    0.60404803940128288666697756195632D-01,
     4    0.60404803940128288666697756195649D-01,
     5    0.12480709551825843363029253981081D+00,
     6    0.60404803940128288666697756195648D-01,
     7    0.60404803940128288666697756195637D-01,
     8    0.12480709551825843363029253981082D+00,
     9    0.60404803940128288666697756195641D-01,
     *    0.60404803940128288666697756195648D-01,
     1    0.43929996776346197110625979955516D-01,
     2    0.43929996776346197110625979955512D-01,
     3    0.91068057691412786014394781012748D-01,
     4    0.91068057691412786014394781012763D-01,
     5    0.91068057691412786014394781012767D-01,
     6    0.91068057691412786014394781012752D-01,
     7    0.43929996776346197110625979955522D-01,
     8    0.91068057691412786014394781012762D-01,
     9    0.91068057691412786014394781012747D-01,
     *    0.77466984750740780203173465712058D-01,
     1    0.77466984750740780203173465712050D-01,
     2    0.77466984750740780203173465712052D-01,
     3    0.77466984750740780203173465712055D-01,
     4    0.77466984750740780203173465712059D-01,
     5    0.77466984750740780203173465712050D-01,
     6    0.30498598671057626319097367939193D-01,
     7    0.63866382415758851251707131619607D-01,
     8    0.70094262574796655316316367371083D-01,
     9    0.63866382415758851251707131619625D-01,
     *    0.70094262574796655316316367371072D-01,
     1    0.70094262574796655316316367371082D-01,
     2    0.63866382415758851251707131619631D-01,
     3    0.39378330997745245389203651033703D-01,
     4    0.63866382415758851251707131619605D-01,
     5    0.39378330997745245389203651033718D-01,
     6    0.70094262574796655316316367371078D-01,
     7    0.30498598671057626319097367939198D-01,
     8    0.30498598671057626319097367939194D-01,
     9    0.39378330997745245389203651033717D-01,
     *    0.39378330997745245389203651033709D-01,
     1    0.63866382415758851251707131619608D-01,
     2    0.63866382415758851251707131619618D-01,
     3    0.70094262574796655316316367371086D-01,
     4    0.70094262574796655316316367371078D-01,
     5    0.39378330997745245389203651033704D-01,
     6    0.39378330997745245389203651033716D-01,
     7    0.55149033021282079944557888198034D-01,
     8    0.32712776475526333982904500119116D-01,
     9    0.55149033021282079944557888198023D-01,
     *    0.55418320480451967502660056655770D-01,
     1    0.32712776475526333982904500119110D-01,
     2    0.32712776475526333982904500119109D-01,
     3    0.55149033021282079944557888198029D-01,
     4    0.55149033021282079944557888198032D-01,
     5    0.55418320480451967502660056655775D-01,
     6    0.32712776475526333982904500119113D-01,
     7    0.55149033021282079944557888198026D-01,
     8    0.55149033021282079944557888198026D-01,
     9    0.55418320480451967502660056655770D-01,
     *    0.32712776475526333982904500119109D-01,
     1    0.32712776475526333982904500119116D-01,
     2    0.34409710894950781236743071836256D-01,
     3    0.34409710894950781236743071836258D-01,
     4    0.31598138967470911631843976097783D-01,
     5    0.31598138967470911631843976097775D-01,
     6    0.34409710894950781236743071836261D-01,
     7    0.31598138967470911631843976097769D-01,
     8    0.31598138967470911631843976097773D-01,
     9    0.34409710894950781236743071836256D-01,
     *    0.34409710894950781236743071836260D-01,
     1    0.34409710894950781236743071836263D-01,
     2    0.31598138967470911631843976097772D-01,
     3    0.31598138967470911631843976097774D-01,
     4    0.19958782958452613179862416864325D-01,
     5    0.19958782958452613179862416864329D-01,
     6    0.38780649075724526819231955250893D-01,
     7    0.19958782958452613179862416864326D-01,
     8    0.38780649075724526819231955250898D-01,
     9    0.19958782958452613179862416864330D-01,
     *    0.19958782958452613179862416864329D-01,
     1    0.19958782958452613179862416864328D-01,
     2    0.38780649075724526819231955250901D-01,
     3    0.12621854733354035919454539982418D-01,
     4    0.12621854733354035919454539982415D-01,
     5    0.45635156810978147466251393276418D-02,
     6    0.12621854733354035919454539982421D-01,
     7    0.12621854733354035919454539982418D-01,
     8    0.12621854733354035919454539982422D-01,
     9    0.12621854733354035919454539982418D-01,
     *    0.45635156810978147466251393276353D-02,
     1    0.45635156810978147466251393276402D-02/


        npols=0
c        
        if( norder .eq. 0 ) then
        npols=1
        call ortho2arrmove(xs0,xsout,npols)
        call ortho2arrmove(ys0,ysout,npols)
        call ortho2arrmove(ws0,wsout,npols)
        endif
c
        if( norder .eq. 1 ) then
        npols=3
        call ortho2arrmove(xs1,xsout,npols)
        call ortho2arrmove(ys1,ysout,npols)
        call ortho2arrmove(ws1,wsout,npols)
        endif
c
        if( norder .eq. 2 ) then
        npols=6
        call ortho2arrmove(xs2,xsout,npols)
        call ortho2arrmove(ys2,ysout,npols)
        call ortho2arrmove(ws2,wsout,npols)
        endif
c
        if( norder .eq. 3 ) then
        npols=10
        call ortho2arrmove(xs3,xsout,npols)
        call ortho2arrmove(ys3,ysout,npols)
        call ortho2arrmove(ws3,wsout,npols)
        endif
c
        if( norder .eq. 4 ) then
        npols=15
        call ortho2arrmove(xs4,xsout,npols)
        call ortho2arrmove(ys4,ysout,npols)
        call ortho2arrmove(ws4,wsout,npols)
        endif
c
        if( norder .eq. 5 ) then
        npols=21
        call ortho2arrmove(xs5,xsout,npols)
        call ortho2arrmove(ys5,ysout,npols)
        call ortho2arrmove(ws5,wsout,npols)
        endif
c
        if( norder .eq. 6 ) then
        npols=28
        call ortho2arrmove(xs6,xsout,npols)
        call ortho2arrmove(ys6,ysout,npols)
        call ortho2arrmove(ws6,wsout,npols)
        endif
c
        if( norder .eq. 7 ) then
        npols=36
        call ortho2arrmove(xs7,xsout,npols)
        call ortho2arrmove(ys7,ysout,npols)
        call ortho2arrmove(ws7,wsout,npols)
        endif
c
        if( norder .eq. 8 ) then
        npols=45
        call ortho2arrmove(xs8,xsout,npols)
        call ortho2arrmove(ys8,ysout,npols)
        call ortho2arrmove(ws8,wsout,npols)
        endif
c
        if( norder .eq. 9 ) then
        npols=55
        call ortho2arrmove(xs9,xsout,npols)
        call ortho2arrmove(ys9,ysout,npols)
        call ortho2arrmove(ws9,wsout,npols)
        endif
c
        if( norder .eq. 10 ) then
        npols=66
        call ortho2arrmove(xs10,xsout,npols)
        call ortho2arrmove(ys10,ysout,npols)
        call ortho2arrmove(ws10,wsout,npols)
        endif
c
        if( norder .eq. 11 ) then
        npols=78
        call ortho2arrmove(xs11,xsout,npols)
        call ortho2arrmove(ys11,ysout,npols)
        call ortho2arrmove(ws11,wsout,npols)
        endif
c
        if( norder .eq. 12 ) then
        npols=91
        call ortho2arrmove(xs12,xsout,npols)
        call ortho2arrmove(ys12,ysout,npols)
        call ortho2arrmove(ws12,wsout,npols)
        endif
c
c
c       on the standard triangle, the sum of the weights should be
c       sqrt(3.0d0)  
c       
        d=0
        do 1200 i=1,npols
        d=d+wsout(i)
 1200 continue
c
ccc        call prin2('in ortho2smexps, sum of weights=*',d,1)
c
        do 1400 i=1,npols
        wsout(i)=wsout(i)/d
        wsout(i)=wsout(i)*sqrt(3.0d0)
 1400 continue
c
c       get the interpolation matrices
c
        call ortho2intpmatr(norder,xsout,ysout,npols,umatr,vmatr)
c
        return
        end
c
c
c
c
c
        subroutine ortho2sfexps(itype,norder,npols,xsout,ysout,
     1     umatr,vmatr,wsout)
        implicit real *8 (a-h,o-z)
        dimension xs0(1),ys0(1),ws0(1)
        dimension xs1(3),ys1(3),ws1(3)
        dimension xs2(6),ys2(6),ws2(6)
        dimension xs3(10),ys3(10),ws3(10)
        dimension xs4(15),ys4(15),ws4(15)
        dimension xs5(21),ys5(21),ws5(21)
        dimension xs6(28),ys6(28),ws6(28)
        dimension xs7(36),ys7(36),ws7(36)
        dimension xs8(45),ys8(45),ws8(45)
        dimension xs9(55),ys9(55),ws9(55)
        dimension xs10(66),ys10(66),ws10(66)
        dimension xs11(78),ys11(78),ws11(78)
        dimension xs12(91),ys12(91),ws12(91)
        dimension xsout(1),ysout(1),wsout(1),umatr(1),vmatr(1)
c
c       This subroutine constructs (or rather retrieves) the
c       interpolation nodes for the polynomials (i.e. smooth functions)
c       on the standard triangle with the vertices
c
c       (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))            (1)
c
c       and the corresponding quadrature weights. It also constructs the
c       matrix vmatr converting the coefficients of the polynomial
c       expansion to its values at the interpolation nodes, and its
c       inverse umatr, converting the values of a function at the
c       interpolation nodes into the coefficients of the polynomial
c       expansion.
c       
c       The constructed nodes are as far away from the boundary as
c       reasonably possible. The quadrature is of low order and will
c       integrate only the polynomials itself but not their pairwise
c       products (user beware).
c
c       The tables are valid up to order 12.
c       
c
c       NOTE #1: the nodes are fully symmetric for all orders
c
c       NOTE #2: the nodes are chebychev-like - they integrate only the 
c       polynomials up to order of interpolation
c       
c       NOTE #3: the weights are positive only for orders 0,1,2,3,4,5,6,7,8
c
c       NOTE #4: the weights are accurate to 30 digits
c       
c
c interp    0     1     2     3     4     5     6     7     8     9    10
c  -----------------------------------------------------------------------
c quadr     1     1     2     3     4     5     6     7     8     9    10
c  -----------------------------------------------------------------------
c nodes     1     3     6    10    15    21    28    36    45    55    66
c  -----------------------------------------------------------------------
c cond #   1.0   1.1   1.4   2.1   2.6   3.6   5.2   7.2  10.3  16.0  24.3  
c
c
c interp   11    12  
c  ------------------
c quadr    11    12  
c  ------------------
c nodes    78    91  
c  ------------------
c cond #  37.8  60.5
c
c       
c
c         Input parameters:
c
c    itype - the type of the calculation to be performed. currently
c          unused
c    norder - the order of the expansion
c
c
c         Output parameters:
c
c    npols - the number of the polynomials, i.e. the terms in the
c          expansion
c    xsout - the x-coordinates of the interpolation nodes (npols of them)
c    ysout - the y-coordinates of the interpolation nodes (npols of them)
c    umatr - the npols*npols matrix, converting the values of the polynomial
c          at the interpolation nodes into the coefficients of its expansion
c    vmatr - the npols*npols matrix, converting the coefficients of 
c          the expansion into its values at the interpolation nodes.
c    wsout - the corresponding quadrature weigths (npols of them)
c
c
c
c    ... interpolation of order  0 , quadratures of order  1
c                   total number of elements is    1
      data xs0/
     1    0.00000000000000000000000000000000D+00/
      data ys0/
     1    0.00000000000000000000000000000000D+00/
      data ws0/
     1    0.45590141139095552839871265039273D+01/

c    ... interpolation of order  1 , quadratures of order  1
c                   total number of elements is    3
      data xs1/
     1    0.46415888336127788924100763509194D+00,
     2    0.00000000000000000000000000000000D+00,
     3   -0.46415888336127788924100763509194D+00/
      data ys1/
     1   -0.26798225625538989664814310113757D+00,
     2    0.53596451251077979329628620227513D+00,
     3   -0.26798225625538989664814310113757D+00/
      data ws1/
     1    0.15196713713031850946623755013091D+01,
     2    0.15196713713031850946623755013091D+01,
     3    0.15196713713031850946623755013091D+01/

c    ... interpolation of order  2 , quadratures of order  2
c                   total number of elements is    6
      data xs2/
     1    0.00000000000000000000000000000000D+00,
     2   -0.67832018593257859350609427420699D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.31034913895002041968195023999520D+00,
     5    0.67832018593257859350609427420699D+00,
     6    0.31034913895002041968195023999520D+00/
      data ys2/
     1    0.78325668388986250132767669218768D+00,
     2   -0.39162834194493125066383834609384D+00,
     3   -0.35836031783112571919404106205974D+00,
     4    0.17918015891556285959702053102987D+00,
     5   -0.39162834194493125066383834609384D+00,
     6    0.17918015891556285959702053102987D+00/
      data ws2/
     1    0.64196591163172639778448830312248D+00,
     2    0.64196591163172639778448830312249D+00,
     3    0.87770545967145869687788719818660D+00,
     4    0.87770545967145869687788719818661D+00,
     5    0.64196591163172639778448830312248D+00,
     6    0.87770545967145869687788719818661D+00/

c    ... interpolation of order  3 , quadratures of order  3
c                   total number of elements is   10
      data xs3/
     1    0.00000000000000000000000000000000D+00,
     2    0.78788216465527050157292367904690D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.30244045274895719698094298757284D+00,
     5   -0.78788216465527050157292367904690D+00,
     6    0.21311173024631953814873643150884D+00,
     7    0.51555218299527673512967941908167D+00,
     8   -0.21311173024631953814873643150884D+00,
     9   -0.30244045274895719698094298757284D+00,
     *   -0.51555218299527673512967941908167D+00/
      data ys3/
     1    0.00000000000000000000000000000000D+00,
     2   -0.45488397985342547416677111801510D+00,
     3    0.90976795970685094833354223603020D+00,
     4   -0.42069430645880172198535665595501D+00,
     5   -0.45488397985342547416677111801510D+00,
     6    0.47226826844206495481884960515937D+00,
     7   -0.51573961983263232833492949204358D-01,
     8    0.47226826844206495481884960515937D+00,
     9   -0.42069430645880172198535665595501D+00,
     *   -0.51573961983263232833492949204358D-01/
      data ws3/
     1    0.46025308671472636701469243761513D+00,
     2    0.24995530577052860345843403939641D+00,
     3    0.24995530577052860345843403939641D+00,
     4    0.55814918498054051776618865802049D+00,
     5    0.24995530577052860345843403939641D+00,
     6    0.55814918498054051776618865802049D+00,
     7    0.55814918498054051776618865802048D+00,
     8    0.55814918498054051776618865802049D+00,
     9    0.55814918498054051776618865802049D+00,
     *    0.55814918498054051776618865802049D+00/

c    ... interpolation of order  4 , quadratures of order  4
c                   total number of elements is   15
      data xs4/
     1    0.00000000000000000000000000000000D+00,
     2   -0.23972386206643138870022060309036D+00,
     3    0.23972386206643138870022060309036D+00,
     4   -0.38899223152341886863742013327792D+00,
     5    0.38899223152341886863742013327792D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.15329324466609596024679230250707D+00,
     8   -0.64639706055370659632540592170819D+00,
     9    0.15329324466609596024679230250707D+00,
     *   -0.49310381588761063607861361920111D+00,
     1    0.64639706055370659632540592170819D+00,
     2    0.49310381588761063607861361920111D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.85029803182531372977585557799028D+00,
     5    0.85029803182531372977585557799028D+00/
      data ys4/
     1    0.27680927259046175750309741683553D+00,
     2   -0.13840463629523087875154870841777D+00,
     3   -0.13840463629523087875154870841777D+00,
     4    0.22458476958271911289823828457629D+00,
     5    0.22458476958271911289823828457629D+00,
     6   -0.44916953916543822579647656915258D+00,
     7    0.65789113775520899169682606160723D+00,
     8   -0.19618972476822199603512010753417D+00,
     9    0.65789113775520899169682606160723D+00,
     *   -0.46170141298698699566170595407306D+00,
     1   -0.19618972476822199603512010753417D+00,
     2   -0.46170141298698699566170595407306D+00,
     3    0.98183959513150771448196632834670D+00,
     4   -0.49091979756575385724098316417335D+00,
     5   -0.49091979756575385724098316417335D+00/
      data ws4/
     1    0.38536461720928538094483065736917D+00,
     2    0.38536461720928538094483065736917D+00,
     3    0.38536461720928538094483065736917D+00,
     4    0.46041105370763293999333328547198D+00,
     5    0.46041105370763293999333328547198D+00,
     6    0.46041105370763293999333328547198D+00,
     7    0.26148049688917298463576027725449D+00,
     8    0.26148049688917298463576027725449D+00,
     9    0.26148049688917298463576027725449D+00,
     *    0.26148049688917298463576027725449D+00,
     1    0.26148049688917298463576027725449D+00,
     2    0.26148049688917298463576027725449D+00,
     3    0.15093470660792080445269100395896D+00,
     4    0.15093470660792080445269100395896D+00,
     5    0.15093470660792080445269100395896D+00/

c    ... interpolation of order  5 , quadratures of order  5
c                   total number of elements is   21
      data xs5/
     1    0.41193815627014371079326648710691D+00,
     2   -0.41193815627014371079326648710691D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.00000000000000000000000000000000D+00,
     5    0.18688344341943277183810695904776D+00,
     6   -0.18688344341943277183810695904776D+00,
     7   -0.22087079446412901939648332653987D+00,
     8    0.22087079446412901939648332653987D+00,
     9   -0.52022362368298212987744816558859D+00,
     *    0.52022362368298212987744816558859D+00,
     1   -0.29935282921885311048096483904872D+00,
     2    0.29935282921885311048096483904872D+00,
     3    0.61744831068503331198337271047326D+00,
     4   -0.61744831068503331198337271047326D+00,
     5    0.73236948567739838452344328062193D+00,
     6   -0.73236948567739838452344328062193D+00,
     7    0.11492117499236507254007057014867D+00,
     8   -0.11492117499236507254007057014867D+00,
     9    0.88894196789837802998851710379702D+00,
     *   -0.88894196789837802998851710379702D+00,
     1    0.00000000000000000000000000000000D+00/
      data ys5/
     1   -0.23783260541204559590836581117600D+00,
     2   -0.23783260541204559590836581117600D+00,
     3   -0.21579441273058741296131773275289D+00,
     4    0.47566521082409119181673162235199D+00,
     5    0.10789720636529370648065886637644D+00,
     6    0.10789720636529370648065886637644D+00,
     7   -0.47318268570435321806981628061863D+00,
     8   -0.47318268570435321806981628061863D+00,
     9    0.45311623892189518849004043640292D-01,
     *    0.45311623892189518849004043640293D-01,
     1    0.42787106181216369922081223697834D+00,
     2    0.42787106181216369922081223697834D+00,
     3   -0.48918349101954379139295532568329D+00,
     4   -0.48918349101954379139295532568329D+00,
     5   -0.29013417706725360166266186337471D+00,
     6   -0.29013417706725360166266186337471D+00,
     7    0.77931766808679739305561718905801D+00,
     8    0.77931766808679739305561718905800D+00,
     9   -0.51323088446008422054455754397817D+00,
     *   -0.51323088446008422054455754397817D+00,
     1    0.10264617689201684410891150879563D+01/
      data ws5/
     1    0.12638977104632570791478878677807D+00,
     2    0.12638977104632570791478878677807D+00,
     3    0.39575825924905674143686932248044D+00,
     4    0.12638977104632570791478878677807D+00,
     5    0.39575825924905674143686932248044D+00,
     6    0.39575825924905674143686932248044D+00,
     7    0.26817695580187041441140059477997D+00,
     8    0.26817695580187041441140059477997D+00,
     9    0.26817695580187041441140059477997D+00,
     *    0.26817695580187041441140059477997D+00,
     1    0.26817695580187041441140059477997D+00,
     2    0.26817695580187041441140059477997D+00,
     3    0.19929766319442293259086293623194D+00,
     4    0.19929766319442293259086293623194D+00,
     5    0.19929766319442293259086293623194D+00,
     6    0.19929766319442293259086293623194D+00,
     7    0.19929766319442293259086293623194D+00,
     8    0.19929766319442293259086293623194D+00,
     9    0.62574103015215951306190330026757D-01,
     *    0.62574103015215951306190330026760D-01,
     1    0.62574103015215951306190330026757D-01/

c    ... interpolation of order  6 , quadratures of order  6
c                   total number of elements is   28
      data xs6/
     1    0.00000000000000000000000000000000D+00,
     2    0.14687095265546441293319920910959D+00,
     3   -0.18997843604320623243394440306687D+00,
     4   -0.14687095265546441293319920910959D+00,
     5   -0.33684938869867064536714361217645D+00,
     6    0.33684938869867064536714361217645D+00,
     7    0.18997843604320623243394440306686D+00,
     8   -0.42113790169293314466222148402808D+00,
     9    0.42113790169293314466222148402808D+00,
     *    0.00000000000000000000000000000000D+00,
     1    0.00000000000000000000000000000000D+00,
     2    0.23589680919441244787695651408205D+00,
     3   -0.23589680919441244787695651408205D+00,
     4   -0.53512505183737187699766690948759D+00,
     5   -0.61661030181743567476511247296515D+00,
     6   -0.38071349262302322688815595888310D+00,
     7    0.61661030181743567476511247296515D+00,
     8    0.53512505183737187699766690948759D+00,
     9    0.38071349262302322688815595888310D+00,
     *    0.89111545368878451512522581690287D-01,
     1   -0.89111545368878451512522581690287D-01,
     2    0.79112821373707380071602697557590D+00,
     3   -0.79112821373707380071602697557590D+00,
     4    0.70201666836819534920350439388561D+00,
     5   -0.70201666836819534920350439388561D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.91443477721301411271065597460659D+00,
     8    0.91443477721301411271065597460660D+00/
      data ys6/
     1    0.00000000000000000000000000000000D+00,
     2    0.30416418643130759999470854434220D+00,
     3   -0.27927606929330753970993788755555D+00,
     4    0.30416418643130759999470854434220D+00,
     5   -0.24888117138000060284770656786648D-01,
     6   -0.24888117138000060284770656786649D-01,
     7   -0.27927606929330753970993788755555D+00,
     8    0.24314408090836910304205067796880D+00,
     9    0.24314408090836910304205067796880D+00,
     *   -0.48628816181673820608410135593759D+00,
     1    0.61790918545683818900059483210380D+00,
     2    0.57580516118941793833689623929834D+00,
     3    0.57580516118941793833689623929834D+00,
     4   -0.30895459272841909450029741605190D+00,
     5   -0.83609951160657249867245249661185D-01,
     6   -0.49219521002876068846965098963716D+00,
     7   -0.83609951160657249867245249661185D-01,
     8   -0.30895459272841909450029741605190D+00,
     9   -0.49219521002876068846965098963716D+00,
     *    0.86206759962258916981557725132830D+00,
     1    0.86206759962258916981557725132830D+00,
     2   -0.35386093775135630021845316228634D+00,
     3   -0.35386093775135630021845316228635D+00,
     4   -0.50820666187123286959712408904195D+00,
     5   -0.50820666187123286959712408904196D+00,
     6    0.10558983295605783239941289792754D+01,
     7   -0.52794916478028916199706448963770D+00,
     8   -0.52794916478028916199706448963770D+00/
      data ws6/
     1    0.52290087589095112116098763963412D+00,
     2    0.15938565984376537102515341667300D+00,
     3    0.15938565984376537102515341667299D+00,
     4    0.15938565984376537102515341667299D+00,
     5    0.15938565984376537102515341667300D+00,
     6    0.15938565984376537102515341667299D+00,
     7    0.15938565984376537102515341667301D+00,
     8    0.18306860293501539303141502279525D+00,
     9    0.18306860293501539303141502279526D+00,
     *    0.18306860293501539303141502279526D+00,
     1    0.17335582343300785579300470283073D+00,
     2    0.22398640455257016309892669626206D+00,
     3    0.22398640455257016309892669626207D+00,
     4    0.17335582343300785579300470283073D+00,
     5    0.22398640455257016309892669626206D+00,
     6    0.22398640455257016309892669626207D+00,
     7    0.22398640455257016309892669626206D+00,
     8    0.17335582343300785579300470283073D+00,
     9    0.22398640455257016309892669626205D+00,
     *    0.83123648235274701911512893045900D-01,
     1    0.83123648235274701911512893045894D-01,
     2    0.83123648235274701911512893045900D-01,
     3    0.83123648235274701911512893045902D-01,
     4    0.83123648235274701911512893045903D-01,
     5    0.83123648235274701911512893045897D-01,
     6    0.55955227708291000046440550509816D-01,
     7    0.55955227708291000046440550509814D-01,
     8    0.55955227708291000046440550509812D-01/

c    ... interpolation of order  7 , quadratures of order  7
c                   total number of elements is   36
      data xs7/
     1    0.00000000000000000000000000000000D+00,
     2   -0.16002725579334016224226640706837D+00,
     3    0.16002725579334016224226640706837D+00,
     4   -0.27524492207747229172610811728767D+00,
     5    0.27524492207747229172610811728767D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.11742727267936064829785028726629D+00,
     8   -0.45357393223715236311468550790299D+00,
     9    0.11742727267936064829785028726629D+00,
     *   -0.33614665955779171481683522063671D+00,
     1   -0.51840004093178669167743297667463D+00,
     2    0.33614665955779171481683522063671D+00,
     3    0.45357393223715236311468550790299D+00,
     4   -0.34532352222635590769272476983584D+00,
     5    0.51840004093178669167743297667463D+00,
     6    0.17307651870543078398470820683880D+00,
     7    0.34532352222635590769272476983584D+00,
     8   -0.17307651870543078398470820683880D+00,
     9    0.68810596928357100082114141402612D+00,
     *    0.49809514238197427726998315905548D+00,
     1    0.62478642192367653696133286560218D+00,
     2   -0.68810596928357100082114141402612D+00,
     3   -0.49809514238197427726998315905548D+00,
     4   -0.62478642192367653696133286560218D+00,
     5    0.19001082690159672355115825497064D+00,
     6   -0.19001082690159672355115825497063D+00,
     7    0.00000000000000000000000000000000D+00,
     8    0.83279075286076528791181365696972D+00,
     9    0.76177852072083091341689248367388D+00,
     *   -0.76177852072083091341689248367388D+00,
     1   -0.83279075286076528791181365696972D+00,
     2    0.71012232139934374494921173295840D-01,
     3   -0.71012232139934374494921173295841D-01,
     4    0.93210115985010831471870384649796D+00,
     5   -0.93210115985010831471870384649796D+00,
     6    0.00000000000000000000000000000000D+00/
      data ys7/
     1    0.18478355841992408360237877960383D+00,
     2   -0.92391779209962041801189389801917D-01,
     3   -0.92391779209962041801189389801917D-01,
     4    0.15891272985450619524431676276161D+00,
     5    0.15891272985450619524431676276161D+00,
     6   -0.31782545970901239048863352552323D+00,
     7    0.45594539625740152720145413456619D+00,
     8   -0.12627769689125207750248762009964D+00,
     9    0.45594539625740152720145413456619D+00,
     *   -0.32966769936614944969896651446655D+00,
     1    0.99446853849912537028747108460518D-01,
     2   -0.32966769936614944969896651446655D+00,
     3   -0.12627769689125207750248762009965D+00,
     4    0.39922417784486382324640153915902D+00,
     5    0.99446853849912537028747108460519D-01,
     6   -0.49867103169477636027514864761954D+00,
     7    0.39922417784486382324640153915902D+00,
     8   -0.49867103169477636027514864761954D+00,
     9   -0.17787256247569756871736988288828D+00,
     *   -0.50698096865743832828140188116209D+00,
     1   -0.36072060888365774899582673036075D+00,
     2   -0.17787256247569756871736988288828D+00,
     3   -0.50698096865743832828140188116209D+00,
     4   -0.36072060888365774899582673036075D+00,
     5    0.68485353113313589699877176405037D+00,
     6    0.68485353113313589699877176405037D+00,
     7    0.72144121776731549799165346072150D+00,
     8   -0.39881410265929933057706890149790D+00,
     9   -0.52181089668454124727514594331104D+00,
     *   -0.52181089668454124727514594331105D+00,
     1   -0.39881410265929933057706890149790D+00,
     2    0.92062499934384057785221484480895D+00,
     3    0.92062499934384057785221484480895D+00,
     4   -0.53814885555142243021842140861036D+00,
     5   -0.53814885555142243021842140861036D+00,
     6    0.10762977111028448604368428172207D+01/
      data ws7/
     1    0.27983293217437640816442488209043D+00,
     2    0.27983293217437640816442488209044D+00,
     3    0.27983293217437640816442488209044D+00,
     4    0.53701725010163896176933704729079D-02,
     5    0.53701725010163896176933704729019D-02,
     6    0.53701725010163896176933704729019D-02,
     7    0.21964960939946404675984877649021D+00,
     8    0.21964960939946404675984877649021D+00,
     9    0.21964960939946404675984877649022D+00,
     *    0.21964960939946404675984877649021D+00,
     1    0.17473463889346734648789248151687D+00,
     2    0.21964960939946404675984877649021D+00,
     3    0.21964960939946404675984877649022D+00,
     4    0.17473463889346734648789248151687D+00,
     5    0.17473463889346734648789248151687D+00,
     6    0.17473463889346734648789248151687D+00,
     7    0.17473463889346734648789248151687D+00,
     8    0.17473463889346734648789248151687D+00,
     9    0.11238151473696311338996642695118D+00,
     *    0.11238151473696311338996642695118D+00,
     1    0.16568673817326433204650550156232D-01,
     2    0.11238151473696311338996642695118D+00,
     3    0.11238151473696311338996642695118D+00,
     4    0.16568673817326433204650550156235D-01,
     5    0.11238151473696311338996642695117D+00,
     6    0.11238151473696311338996642695118D+00,
     7    0.16568673817326433204650550156231D-01,
     8    0.93510234185377398696680480182245D-01,
     9    0.93510234185377398696680480182252D-01,
     *    0.93510234185377398696680480182246D-01,
     1    0.93510234185377398696680480182249D-01,
     2    0.93510234185377398696680480182254D-01,
     3    0.93510234185377398696680480182246D-01,
     4    0.17347598379922053006830368308507D-01,
     5    0.17347598379922053006830368308508D-01,
     6    0.17347598379922053006830368308505D-01/

c    ... interpolation of order  8 , quadratures of order  8
c                   total number of elements is   45
      data xs8/
     1    0.29119970574321945090827474014685D+00,
     2   -0.29119970574321945090827474014685D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.13342757213767353188586593619478D+00,
     5    0.00000000000000000000000000000000D+00,
     6    0.13342757213767353188586593619479D+00,
     7   -0.15524799022747363558187778535609D+00,
     8    0.15524799022747363558187778535609D+00,
     9   -0.38238157371567669977583135396971D+00,
     *    0.38238157371567669977583135396971D+00,
     1    0.22713358348820306419395356861362D+00,
     2   -0.22713358348820306419395356861362D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.43850689294985466941020032762077D+00,
     5    0.43850689294985466941020032762077D+00,
     6   -0.44859373669626709540725041742928D+00,
     7   -0.54420323404607972915093272003521D+00,
     8   -0.30824882087324466784311222655322D+00,
     9   -0.59534567943338835655630987496681D+00,
     *    0.44859373669626709540725041742929D+00,
     1    0.30824882087324466784311222655322D+00,
     2    0.54420323404607972915093272003522D+00,
     3    0.59534567943338835655630987496681D+00,
     4   -0.95609497349812633743682302605929D-01,
     5    0.95609497349812633743682302605929D-01,
     6   -0.28709685856014368871319764841359D+00,
     7    0.28709685856014368871319764841359D+00,
     8   -0.58605216896614590001672328791832D+00,
     9   -0.74205748439956782537328999099412D+00,
     *   -0.69151213668016592808928257916361D+00,
     1    0.58605216896614590001672328791832D+00,
     2    0.74205748439956782537328999099412D+00,
     3    0.69151213668016592808928257916361D+00,
     4    0.15600531543342192535656670307580D+00,
     5   -0.15600531543342192535656670307580D+00,
     6    0.00000000000000000000000000000000D+00,
     7   -0.80542333256695389828188108837291D+00,
     8   -0.86329002477739360026502186962178D+00,
     9    0.86329002477739360026502186962178D+00,
     *    0.80542333256695389828188108837291D+00,
     1    0.57866692210439701983140781248878D-01,
     2   -0.57866692210439701983140781248877D-01,
     3    0.94483243043430061355752535947216D+00,
     4   -0.94483243043430061355752535947216D+00,
     5    0.00000000000000000000000000000000D+00/
      data ys8/
     1   -0.16812422849878756173432186680952D+00,
     2   -0.16812422849878756173432186680952D+00,
     3   -0.15406888938200804808338143573133D+00,
     4    0.77034444691004024041690717865666D-01,
     5    0.33624845699757512346864373361903D+00,
     6    0.77034444691004024041690717865666D-01,
     7   -0.35190374008681704723631153592036D+00,
     8   -0.35190374008681704723631153592036D+00,
     9    0.41503166619938083324657781354328D-01,
     *    0.41503166619938083324657781354328D-01,
     1    0.31040057346687896391165375456603D+00,
     2    0.31040057346687896391165375456603D+00,
     3   -0.50634414537221000342606577131747D+00,
     4    0.25317207268610500171303288565874D+00,
     5    0.25317207268610500171303288565874D+00,
     6   -0.36939605270236817954588434968881D+00,
     7   -0.20379554560637077388346302157691D+00,
     8   -0.50947843685494228749888742934637D+00,
     9   -0.12212091135357669549310043829530D-01,
     *   -0.36939605270236817954588434968881D+00,
     1   -0.50947843685494228749888742934637D+00,
     2   -0.20379554560637077388346302157691D+00,
     3   -0.12212091135357669549310043829529D-01,
     4    0.57319159830873895342934737126571D+00,
     5    0.57319159830873895342934737126571D+00,
     6    0.52169052799029995704819747317590D+00,
     7    0.52169052799029995704819747317590D+00,
     8   -0.51849679923276563265368304188818D+00,
     9   -0.24828766665126975044868730157188D+00,
     *   -0.39924471826018708313231340195083D+00,
     1   -0.51849679923276563265368304188818D+00,
     2   -0.24828766665126975044868730157189D+00,
     3   -0.39924471826018708313231340195083D+00,
     4    0.76678446588403538310237034346006D+00,
     5    0.76678446588403538310237034346007D+00,
     6    0.79848943652037416626462680390166D+00,
     7   -0.53183007851875747347169049898492D+00,
     8   -0.43160202754432572657689130932286D+00,
     9   -0.43160202754432572657689130932286D+00,
     *   -0.53183007851875747347169049898492D+00,
     1    0.96343210606308320004858180830778D+00,
     2    0.96343210606308320004858180830778D+00,
     3   -0.54549925805033181801844369865142D+00,
     4   -0.54549925805033181801844369865141D+00,
     5    0.10909985161006636360368873973028D+01/
      data ws8/
     1    0.39091288492958344250907062021342D+00,
     2    0.39091288492958344250907062021342D+00,
     3    0.76392494454403533724858692338703D-01,
     4    0.76392494454403533724858692338702D-01,
     5    0.39091288492958344250907062021343D+00,
     6    0.76392494454403533724858692338702D-01,
     7    0.97901846410162103694188251763420D-01,
     8    0.97901846410162103694188251763418D-01,
     9    0.97901846410162103694188251763424D-01,
     *    0.97901846410162103694188251763422D-01,
     1    0.97901846410162103694188251763416D-01,
     2    0.97901846410162103694188251763410D-01,
     3    0.16899734529897519272479563239394D+00,
     4    0.16899734529897519272479563239394D+00,
     5    0.16899734529897519272479563239394D+00,
     6    0.29940305172536536315676150518721D-01,
     7    0.29940305172536536315676150518714D-01,
     8    0.97911539997145937843941333133658D-01,
     9    0.97911539997145937843941333133659D-01,
     *    0.29940305172536536315676150518729D-01,
     1    0.97911539997145937843941333133659D-01,
     2    0.29940305172536536315676150518716D-01,
     3    0.97911539997145937843941333133665D-01,
     4    0.29940305172536536315676150518722D-01,
     5    0.29940305172536536315676150518720D-01,
     6    0.97911539997145937843941333133663D-01,
     7    0.97911539997145937843941333133663D-01,
     8    0.12233370210481231623303792930904D+00,
     9    0.12233370210481231623303792930904D+00,
     *    0.11336157716269228658356060334890D+00,
     1    0.12233370210481231623303792930904D+00,
     2    0.12233370210481231623303792930904D+00,
     3    0.11336157716269228658356060334890D+00,
     4    0.12233370210481231623303792930904D+00,
     5    0.12233370210481231623303792930904D+00,
     6    0.11336157716269228658356060334889D+00,
     7    0.21980158737973191804586901354723D-01,
     8    0.21980158737973191804586901354727D-01,
     9    0.21980158737973191804586901354728D-01,
     *    0.21980158737973191804586901354723D-01,
     1    0.21980158737973191804586901354728D-01,
     2    0.21980158737973191804586901354724D-01,
     3    0.29871964612270467337228820854995D-01,
     4    0.29871964612270467337228820854997D-01,
     5    0.29871964612270467337228820854997D-01/

c    ... interpolation of order  9 , quadratures of order  9
c                   total number of elements is   55
      data xs9/
     1    0.00000000000000000000000000000000D+00,
     2    0.00000000000000000000000000000000D+00,
     3   -0.32406279216349937059368893532096D+00,
     4    0.24897605964720946797361828899894D+00,
     5   -0.24897605964720946797361828899894D+00,
     6    0.32406279216349937059368893532096D+00,
     7   -0.39718973412948065222814001303598D+00,
     8    0.13748683024880671540011014243254D+00,
     9   -0.13748683024880671540011014243254D+00,
     *    0.39718973412948065222814001303598D+00,
     1    0.00000000000000000000000000000000D+00,
     2    0.11148922939840275257350814656639D+00,
     3   -0.11148922939840275257350814656639D+00,
     4    0.28051798739774752848254720938424D+00,
     5   -0.18978247880572028382005241844745D+00,
     6    0.47030046620346781230259962783169D+00,
     7    0.18978247880572028382005241844745D+00,
     8   -0.28051798739774752848254720938424D+00,
     9   -0.47030046620346781230259962783169D+00,
     *    0.14205164378199905590392248591113D+00,
     1    0.37404467113043532099824372592501D+00,
     2    0.51609631491243437690216621183614D+00,
     3   -0.14205164378199905590392248591114D+00,
     4   -0.37404467113043532099824372592501D+00,
     5   -0.51609631491243437690216621183615D+00,
     6    0.24183543849697248833643500263769D+00,
     7    0.79167253337873519917484110039335D-01,
     8   -0.79167253337873519917484110039334D-01,
     9   -0.24183543849697248833643500263769D+00,
     *    0.65643500762017923555198811361054D+00,
     1    0.61515689925714714168439292425753D+00,
     2    0.53598964591927362176690881421820D+00,
     3    0.41459956912320674721555311097285D+00,
     4   -0.41459956912320674721555311097285D+00,
     5   -0.65643500762017923555198811361054D+00,
     6   -0.53598964591927362176690881421819D+00,
     7   -0.61515689925714714168439292425753D+00,
     8    0.78352764541632836376172926091977D+00,
     9    0.13021104280971217755702486501753D+00,
     *    0.00000000000000000000000000000000D+00,
     1   -0.13021104280971217755702486501753D+00,
     2    0.74226818043686087688417355371479D+00,
     3    0.65331660260661618620470439590223D+00,
     4   -0.65331660260661618620470439590223D+00,
     5   -0.78352764541632836376172926091977D+00,
     6   -0.74226818043686087688417355371478D+00,
     7    0.48034555260637627092552269191672D-01,
     8   -0.48034555260637627092552269191671D-01,
     9    0.88623501070392882317949303689591D+00,
     *    0.83820045544329119608694076770424D+00,
     1   -0.83820045544329119608694076770424D+00,
     2   -0.88623501070392882317949303689591D+00,
     3    0.95430310720359258666279502781254D+00,
     4    0.00000000000000000000000000000000D+00,
     5   -0.95430310720359258666279502781253D+00/
      data ys9/
     1    0.00000000000000000000000000000000D+00,
     2   -0.37419548057987621661313990601666D+00,
     3    0.18709774028993810830656995300833D+00,
     4   -0.15009721849265171633266210597841D-01,
     5   -0.15009721849265171633266210597841D-01,
     6    0.18709774028993810830656995300833D+00,
     7   -0.22931759991901154238370039825789D+00,
     8   -0.20811473166400047481685628525050D+00,
     9   -0.20811473166400047481685628525050D+00,
     *   -0.22931759991901154238370039825789D+00,
     1    0.45863519983802308476740079651577D+00,
     2    0.22312445351326564645012249584834D+00,
     3    0.22312445351326564645012249584834D+00,
     4   -0.38109906598853568785482872214119D+00,
     5    0.43348523629920021900093850802544D+00,
     6   -0.52386170310664531146109785884250D-01,
     7    0.43348523629920021900093850802544D+00,
     8   -0.38109906598853568785482872214119D+00,
     9   -0.52386170310664531146109785884249D-01,
     *   -0.51392313790856973061405711351203D+00,
     1    0.37998190111883384106075634728437D+00,
     2    0.13394123678973588955330076622766D+00,
     3   -0.51392313790856973061405711351203D+00,
     4    0.37998190111883384106075634728437D+00,
     5    0.13394123678973588955330076622765D+00,
     6    0.61836210119419079155236643803532D+00,
     7    0.66461476773431422392693858881966D+00,
     8    0.66461476773431422392693858881966D+00,
     9    0.61836210119419079155236643803532D+00,
     *   -0.99745417323368018170632594535832D-01,
     1   -0.26374653132872024863753924104459D+00,
     2   -0.40086823640559397528939934777507D+00,
     3   -0.51861668387082277338173384349949D+00,
     4   -0.51861668387082277338173384349949D+00,
     5   -0.99745417323368018170632594535830D-01,
     6   -0.40086823640559397528939934777506D+00,
     7   -0.26374653132872024863753924104459D+00,
     8   -0.30201513576333240645539026870094D+00,
     9    0.82956241337961244310712825920599D+00,
     *    0.85709746757223067194161603899125D+00,
     1    0.82956241337961244310712825920599D+00,
     2   -0.42854873378611533597080801949562D+00,
     3   -0.52754727761628003665173799050505D+00,
     4   -0.52754727761628003665173799050505D+00,
     5   -0.30201513576333240645539026870094D+00,
     6   -0.42854873378611533597080801949562D+00,
     7    0.99560328058023526534051768702926D+00,
     8    0.99560328058023526534051768702926D+00,
     9   -0.45620249517491800010391568614685D+00,
     *   -0.53940078540531726523660200088241D+00,
     1   -0.53940078540531726523660200088241D+00,
     2   -0.45620249517491800010391568614685D+00,
     3   -0.55096715583249047395310793265204D+00,
     4    0.11019343116649809479062158653041D+01,
     5   -0.55096715583249047395310793265204D+00/
      data ws9/
     1   -0.20164670031274654479237800230249D+00,
     2    0.15696735924746966187224628879649D+00,
     3    0.15696735924746966187224628879650D+00,
     4    0.25045890707950110986918332356584D+00,
     5    0.25045890707950110986918332356585D+00,
     6    0.15696735924746966187224628879647D+00,
     7    0.10840891390860157529458323978274D+00,
     8    0.25045890707950110986918332356584D+00,
     9    0.25045890707950110986918332356584D+00,
     *    0.10840891390860157529458323978274D+00,
     1    0.10840891390860157529458323978274D+00,
     2    0.25045890707950110986918332356586D+00,
     3    0.25045890707950110986918332356583D+00,
     4   -0.52260304436548042552342376773722D-01,
     5   -0.52260304436548042552342376773719D-01,
     6   -0.52260304436548042552342376773715D-01,
     7   -0.52260304436548042552342376773728D-01,
     8   -0.52260304436548042552342376773733D-01,
     9   -0.52260304436548042552342376773741D-01,
     *    0.10918114521794291266227734484700D+00,
     1    0.10918114521794291266227734484701D+00,
     2    0.10918114521794291266227734484701D+00,
     3    0.10918114521794291266227734484702D+00,
     4    0.10918114521794291266227734484701D+00,
     5    0.10918114521794291266227734484701D+00,
     6    0.11237224460854159455210289679954D+00,
     7    0.15725048830320130617500051600234D+00,
     8    0.15725048830320130617500051600235D+00,
     9    0.11237224460854159455210289679954D+00,
     *    0.11237224460854159455210289679955D+00,
     1    0.15725048830320130617500051600234D+00,
     2    0.15725048830320130617500051600233D+00,
     3    0.11237224460854159455210289679955D+00,
     4    0.11237224460854159455210289679954D+00,
     5    0.11237224460854159455210289679955D+00,
     6    0.15725048830320130617500051600234D+00,
     7    0.15725048830320130617500051600234D+00,
     8    0.40878833742527561340205755485247D-01,
     9    0.40878833742527561340205755485251D-01,
     *   -0.34520953017752578323270554804776D-01,
     1    0.40878833742527561340205755485251D-01,
     2   -0.34520953017752578323270554804760D-01,
     3    0.40878833742527561340205755485242D-01,
     4    0.40878833742527561340205755485256D-01,
     5    0.40878833742527561340205755485250D-01,
     6   -0.34520953017752578323270554804778D-01,
     7    0.59716418115852015408184210133586D-01,
     8    0.59716418115852015408184210133585D-01,
     9    0.59716418115852015408184210133580D-01,
     *    0.59716418115852015408184210133587D-01,
     1    0.59716418115852015408184210133586D-01,
     2    0.59716418115852015408184210133585D-01,
     3    0.83615267374503584038585484910333D-03,
     4    0.83615267374503584038585484910337D-03,
     5    0.83615267374503584038585484910419D-03/

c    ... interpolation of order  10 , quadratures of order  10
c                   total number of elements is   66
      data xs10/
     1    0.11981095512565134561698600968171D+00,
     2   -0.11981095512565134561698600968171D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.00000000000000000000000000000000D+00,
     5    0.21263842077170258144502742640239D+00,
     6   -0.21263842077170258144502742640239D+00,
     7    0.25282163917802540034618460512857D+00,
     8   -0.25282163917802540034618460512857D+00,
     9    0.34665726204391091258230713990856D+00,
     *   -0.34665726204391091258230713990856D+00,
     1    0.93835622865885512236122534779986D-01,
     2   -0.93835622865885512236122534779986D-01,
     3    0.13036832425906993377624361466103D+00,
     4   -0.13036832425906993377624361466103D+00,
     5    0.40735130850656840589608358980228D+00,
     6   -0.40735130850656840589608358980228D+00,
     7    0.27698298424749847211983997514125D+00,
     8   -0.27698298424749847211983997514125D+00,
     9    0.00000000000000000000000000000000D+00,
     *    0.44950247731501806545246641077695D+00,
     1    0.38172984896229236556238400118401D+00,
     2    0.48281038499586737596225488201762D+00,
     3    0.54227939397486863170010063349021D+00,
     4    0.25843217031716275508439206996193D+00,
     5    0.58031074059173955175795402809553D+00,
     6   -0.38172984896229236556238400118401D+00,
     7   -0.25843217031716275508439206996193D+00,
     8   -0.48281038499586737596225488201762D+00,
     9   -0.44950247731501806545246641077696D+00,
     *   -0.54227939397486863170010063349021D+00,
     1   -0.58031074059173955175795402809553D+00,
     2    0.16054954501257626613771663230620D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.32187857027457679667356195813360D+00,
     5   -0.16054954501257626613771663230619D+00,
     6   -0.32187857027457679667356195813360D+00,
     7    0.70535254660668758056075900505539D+00,
     8    0.67137166227594816822626247726109D+00,
     9    0.60483069075325052486125798949562D+00,
     *    0.49920055022953568216173050753394D+00,
     1    0.20615199637715189839902849752145D+00,
     2   -0.49920055022953568216173050753394D+00,
     3    0.66540971522697643365004487765459D-01,
     4   -0.60483069075325052486125798949562D+00,
     5   -0.66540971522697643365004487765460D-01,
     6   -0.67137166227594816822626247726108D+00,
     7   -0.20615199637715189839902849752144D+00,
     8   -0.70535254660668758056075900505539D+00,
     9    0.81597144134349681094317008316457D+00,
     *    0.70573966565848235658969426978512D+00,
     1    0.78165931600967795371656974153517D+00,
     2    0.11023177568501445435347581337945D+00,
     3    0.00000000000000000000000000000000D+00,
     4   -0.11023177568501445435347581337944D+00,
     5   -0.70573966565848235658969426978512D+00,
     6   -0.81597144134349681094317008316457D+00,
     7   -0.78165931600967795371656974153516D+00,
     8    0.90390408331317793487043531073354D+00,
     9    0.86340755394301578601259014341573D+00,
     *    0.96153543942479984192032022944874D+00,
     1    0.40496529370162148857845167317807D-01,
     2   -0.40496529370162148857845167317810D-01,
     3   -0.86340755394301578601259014341572D+00,
     4   -0.90390408331317793487043531073352D+00,
     5    0.00000000000000000000000000000000D+00,
     6   -0.96153543942479984192032022944874D+00/
      data ys10/
     1   -0.69172887193660977154451797762220D-01,
     2   -0.69172887193660977154451797762221D-01,
     3    0.13834577438732195430890359552444D+00,
     4   -0.24553369894519879217626631511371D+00,
     5    0.12276684947259939608813315755686D+00,
     6    0.12276684947259939608813315755686D+00,
     7   -0.25431868567878580666601928215129D+00,
     8   -0.25431868567878580666601928215129D+00,
     9   -0.91790619315200197255427763002386D-01,
     *   -0.91790619315200197255427763002389D-01,
     1    0.34610930499398600392144704515368D+00,
     2    0.34610930499398600392144704515368D+00,
     3   -0.39510058813725267630980122296585D+00,
     4   -0.39510058813725267630980122296585D+00,
     5    0.84648013411464670488506841230300D-01,
     6    0.84648013411464670488506841230299D-01,
     7    0.31045257472578800582129438173555D+00,
     8    0.31045257472578800582129438173556D+00,
     9   -0.51904075255845865747691539293663D+00,
     *    0.25952037627922932873845769646832D+00,
     1   -0.40577847711866037426398943912774D+00,
     2   -0.27875070574491088176792979672328D+00,
     3   -0.12769850802481183670729326562068D+00,
     4   -0.52087924148867070461104080957369D+00,
     5    0.36630796094525657553162284688845D-01,
     6   -0.40577847711866037426398943912774D+00,
     7   -0.52087924148867070461104080957369D+00,
     8   -0.27875070574491088176792979672328D+00,
     9    0.25952037627922932873845769646832D+00,
     *   -0.12769850802481183670729326562068D+00,
     1    0.36630796094525657553162284688843D-01,
     2    0.53347698514347221097128270474842D+00,
     3    0.55750141148982176353585959344656D+00,
     4    0.48424844539414504705787852488485D+00,
     5    0.53347698514347221097128270474843D+00,
     6    0.48424844539414504705787852488485D+00,
     7   -0.16919166145230431990919256968657D+00,
     8   -0.31078171429976777868709571811521D+00,
     9   -0.42603405776207389848296905211285D+00,
     *   -0.52625739325928653164712598212890D+00,
     1    0.69544905471159085155631855181547D+00,
     2   -0.52625739325928653164712598212890D+00,
     3    0.73681577206184167717006477022805D+00,
     4   -0.42603405776207389848296905211284D+00,
     5    0.73681577206184167717006477022806D+00,
     6   -0.31078171429976777868709571811520D+00,
     7    0.69544905471159085155631855181547D+00,
     8   -0.16919166145230431990919256968657D+00,
     9   -0.34381664058072773512639533399889D+00,
     *   -0.53474367667570835280841337007897D+00,
     1   -0.45129121651276631856566459091437D+00,
     2    0.87856031725643608793480870407785D+00,
     3    0.90258243302553263713132918182875D+00,
     4    0.87856031725643608793480870407786D+00,
     5   -0.53474367667570835280841337007897D+00,
     6   -0.34381664058072773512639533399889D+00,
     7   -0.45129121651276631856566459091437D+00,
     8   -0.47510790155624778966655469580507D+00,
     9   -0.54524994795557389734199213061221D+00,
     *   -0.55514274478727328680742234800214D+00,
     1    0.10203578495118216870085468264173D+01,
     2    0.10203578495118216870085468264173D+01,
     3   -0.54524994795557389734199213061221D+00,
     4   -0.47510790155624778966655469580506D+00,
     5    0.11102854895745465736148446960043D+01,
     6   -0.55514274478727328680742234800214D+00/
      data ws10/
     1    0.18692147184302480593444178304802D-01,
     2    0.18692147184302480593444178304790D-01,
     3    0.18692147184302480593444178304792D-01,
     4    0.42651771845431577323884019879851D+00,
     5    0.42651771845431577323884019879851D+00,
     6    0.42651771845431577323884019879852D+00,
     7   -0.21115726461550228904450738434074D-01,
     8   -0.21115726461550228904450738434091D-01,
     9   -0.21115726461550228904450738434084D-01,
     *   -0.21115726461550228904450738434077D-01,
     1   -0.21115726461550228904450738434069D-01,
     2   -0.21115726461550228904450738434091D-01,
     3    0.12307610888834973754286101548193D-01,
     4    0.12307610888834973754286101548229D-01,
     5    0.12307610888834973754286101548215D-01,
     6    0.12307610888834973754286101548203D-01,
     7    0.12307610888834973754286101548205D-01,
     8    0.12307610888834973754286101548216D-01,
     9    0.75036963121684660010435843219708D-01,
     *    0.75036963121684660010435843219698D-01,
     1    0.97635943952479541181708301113216D-01,
     2    0.31163222185386661766418181424612D+00,
     3    0.97635943952479541181708301113200D-01,
     4    0.11792537448730800610661070610500D+00,
     5    0.11792537448730800610661070610501D+00,
     6    0.97635943952479541181708301113186D-01,
     7    0.11792537448730800610661070610500D+00,
     8    0.31163222185386661766418181424615D+00,
     9    0.75036963121684660010435843219696D-01,
     *    0.97635943952479541181708301113184D-01,
     1    0.11792537448730800610661070610502D+00,
     2    0.97635943952479541181708301113194D-01,
     3    0.31163222185386661766418181424613D+00,
     4    0.11792537448730800610661070610502D+00,
     5    0.97635943952479541181708301113194D-01,
     6    0.11792537448730800610661070610501D+00,
     7    0.43071017883040867073231148276323D-01,
     8   -0.46047505593988628731608503478097D-01,
     9   -0.46047505593988628731608503478133D-01,
     *    0.43071017883040867073231148276328D-01,
     1    0.43071017883040867073231148276314D-01,
     2    0.43071017883040867073231148276331D-01,
     3   -0.46047505593988628731608503478109D-01,
     4   -0.46047505593988628731608503478127D-01,
     5   -0.46047505593988628731608503478112D-01,
     6   -0.46047505593988628731608503478110D-01,
     7    0.43071017883040867073231148276317D-01,
     8    0.43071017883040867073231148276322D-01,
     9    0.83057578060904236329213744087788D-01,
     *    0.83057578060904236329213744087797D-01,
     1    0.10616793877474987323084551270710D+00,
     2    0.83057578060904236329213744087806D-01,
     3    0.10616793877474987323084551270708D+00,
     4    0.83057578060904236329213744087804D-01,
     5    0.83057578060904236329213744087800D-01,
     6    0.83057578060904236329213744087800D-01,
     7    0.10616793877474987323084551270709D+00,
     8   -0.73206706122537115698343533642587D-02,
     9   -0.73206706122537115698343533642520D-02,
     *    0.22597136704715579446315142324686D-01,
     1   -0.73206706122537115698343533642581D-02,
     2   -0.73206706122537115698343533642604D-02,
     3   -0.73206706122537115698343533642524D-02,
     4   -0.73206706122537115698343533642567D-02,
     5    0.22597136704715579446315142324693D-01,
     6    0.22597136704715579446315142324688D-01/

c    ... interpolation of order  11 , quadratures of order  11
c                   total number of elements is   78
      data xs11/
     1    0.22423703937422982001142869292407D+00,
     2    0.10370345368494755452423625120027D+00,
     3    0.00000000000000000000000000000000D+00,
     4    0.00000000000000000000000000000000D+00,
     5   -0.22423703937422982001142869292407D+00,
     6   -0.10370345368494755452423625120027D+00,
     7    0.30160643920156835233488020870287D+00,
     8    0.18245966024654493879872943368933D+00,
     9    0.11914677895502341353615077501354D+00,
     *   -0.18245966024654493879872943368933D+00,
     1   -0.11914677895502341353615077501354D+00,
     2   -0.30160643920156835233488020870287D+00,
     3    0.35482740449819137905203149783848D+00,
     4   -0.35482740449819137905203149783848D+00,
     5    0.00000000000000000000000000000000D+00,
     6    0.79677489611073362139431954285063D-01,
     7   -0.79677489611073362139431954285063D-01,
     8    0.23889656726187995406768480855880D+00,
     9   -0.23889656726187995406768480855881D+00,
     *    0.42854006214833263528346627555636D+00,
     1    0.34886257253725927314403432127130D+00,
     2    0.47816045655259137223667365866832D+00,
     3    0.23926388929071141816898885010951D+00,
     4    0.51414333780343819116465955264104D+00,
     5    0.39375251891911036126747400146024D+00,
     6   -0.34886257253725927314403432127130D+00,
     7   -0.42854006214833263528346627555636D+00,
     8   -0.23926388929071141816898885010951D+00,
     9   -0.47816045655259137223667365866832D+00,
     *    0.12039081888432782989718555118079D+00,
     1   -0.39375251891911036126747400146024D+00,
     2   -0.12039081888432782989718555118079D+00,
     3   -0.51414333780343819116465955264104D+00,
     4    0.60144429457318600443890003246115D+00,
     5    0.13738812510606833786899838099415D+00,
     6    0.63352490364546502777033297647753D+00,
     7    0.55237920123986871827365487008449D+00,
     8    0.46405616946711766656990165146700D+00,
     9    0.27936024544942236093672246521166D+00,
     *    0.35416465819604266683361051126588D+00,
     1    0.00000000000000000000000000000000D+00,
     2   -0.13738812510606833786899838099416D+00,
     3   -0.27936024544942236093672246521166D+00,
     4   -0.46405616946711766656990165146700D+00,
     5   -0.60144429457318600443890003246115D+00,
     6   -0.35416465819604266683361051126587D+00,
     7   -0.55237920123986871827365487008448D+00,
     8   -0.63352490364546502777033297647753D+00,
     9    0.74492901608996706110355143915258D+00,
     *    0.71647827935402495510880646319440D+00,
     1    0.65981080721374569262791420375858D+00,
     2    0.56730781511310265007962007856243D+00,
     3    0.17762120097686441102393136059014D+00,
     4   -0.56730781511310265007962007856243D+00,
     5    0.56667472140279262480892259435814D-01,
     6   -0.65981080721374569262791420375858D+00,
     7   -0.56667472140279262480892259435810D-01,
     8   -0.71647827935402495510880646319440D+00,
     9   -0.17762120097686441102393136059014D+00,
     *   -0.74492901608996706110355143915258D+00,
     1    0.84176832870908105249818214322604D+00,
     2    0.94467783942060286006790555176374D-01,
     3    0.81278403015802876505456169780766D+00,
     4    0.74730054476702076649139158804966D+00,
     5    0.00000000000000000000000000000000D+00,
     6   -0.94467783942060286006790555176375D-01,
     7   -0.74730054476702076649139158804966D+00,
     8   -0.84176832870908105249818214322604D+00,
     9   -0.81278403015802876505456169780766D+00,
     *    0.91778560986217893762338452849918D+00,
     1    0.88319103325625377997802567255835D+00,
     2    0.96718133054966921017855382733497D+00,
     3    0.34594576605925157645358855940830D-01,
     4   -0.34594576605925157645358855940836D-01,
     5   -0.88319103325625377997802567255834D+00,
     6   -0.91778560986217893762338452849917D+00,
     7    0.00000000000000000000000000000000D+00,
     8   -0.96718133054966921017855382733497D+00/
      data ys11/
     1   -0.12946331504499629827402636560604D+00,
     2    0.59873216900898358542707248954152D-01,
     3   -0.11974643380179671708541449790830D+00,
     4    0.25892663008999259654805273121208D+00,
     5   -0.12946331504499629827402636560604D+00,
     6    0.59873216900898358542707248954152D-01,
     7    0.36553709056830773547821836470128D-01,
     8    0.24292198376510959081145313091211D+00,
     9   -0.27947569282194036435927496738224D+00,
     *    0.24292198376510959081145313091211D+00,
     1   -0.27947569282194036435927496738224D+00,
     2    0.36553709056830773547821836470128D-01,
     3    0.20485969750288702055593786743340D+00,
     4    0.20485969750288702055593786743340D+00,
     5   -0.40971939500577404111187573486681D+00,
     6    0.44883362040445078768852270541307D+00,
     7    0.44883362040445078768852270541307D+00,
     8    0.41420513919582203794717211526863D+00,
     9    0.41420513919582203794717211526863D+00,
     *   -0.15541408008926517000685385249901D+00,
     1   -0.29341954031518561768166885291406D+00,
     2   -0.21207347222512527508994961056585D-03,
     3   -0.41399306572359691267208216565806D+00,
     4    0.15782545110121542519975321567003D+00,
     5    0.36634846617369388583820156958937D+00,
     6   -0.29341954031518561768166885291406D+00,
     7   -0.15541408008926517000685385249901D+00,
     8   -0.41399306572359691267208216565807D+00,
     9   -0.21207347222512527508994961056608D-03,
     *   -0.52417391727490931103795478525940D+00,
     1    0.36634846617369388583820156958937D+00,
     2   -0.52417391727490931103795478525940D+00,
     3    0.15782545110121542519975321567003D+00,
     4   -0.18860188334750044070040843096246D+00,
     5    0.61516697973534049137711452588101D+00,
     6   -0.43188347835833106406166389102004D-01,
     7   -0.31891628053058866635404290450471D+00,
     8   -0.42656509638784005067670609491855D+00,
     9    0.57024283440497799110705870053673D+00,
     *   -0.52705448656914488470089231143472D+00,
     1    0.63783256106117733270808580900940D+00,
     2    0.61516697973534049137711452588102D+00,
     3    0.57024283440497799110705870053672D+00,
     4   -0.42656509638784005067670609491855D+00,
     5   -0.18860188334750044070040843096246D+00,
     6   -0.52705448656914488470089231143472D+00,
     7   -0.31891628053058866635404290450471D+00,
     8   -0.43188347835833106406166389102006D-01,
     9   -0.22498567157115097209145402783393D+00,
     *   -0.34822496686459449422975659056917D+00,
     1   -0.44637590774805204619735488457197D+00,
     2   -0.53263461616448283161984727165714D+00,
     3    0.75762028773563380371130129949106D+00,
     4   -0.53263461616448283161984727165714D+00,
     5    0.79460087461264654042711147514115D+00,
     6   -0.44637590774805204619735488457197D+00,
     7    0.79460087461264654042711147514114D+00,
     8   -0.34822496686459449422975659056918D+00,
     9    0.75762028773563380371130129949107D+00,
     *   -0.22498567157115097209145402783392D+00,
     1   -0.37691317019809750669020506211453D+00,
     2    0.91744934186228275025561732417902D+00,
     3   -0.46926107860476681311353223898022D+00,
     4   -0.54053617166418524356541226206449D+00,
     5    0.93852215720953362622706447796045D+00,
     6    0.91744934186228275025561732417902D+00,
     7   -0.54053617166418524356541226206449D+00,
     8   -0.37691317019809750669020506211452D+00,
     9   -0.46926107860476681311353223898022D+00,
     *   -0.48993739268042982089423789096419D+00,
     1   -0.54985695702822588028579053150974D+00,
     2   -0.55840240154803193558206234914383D+00,
     3    0.10397943497086557011800284224739D+01,
     4    0.10397943497086557011800284224739D+01,
     5   -0.54985695702822588028579053150974D+00,
     6   -0.48993739268042982089423789096419D+00,
     7    0.11168048030960638711641246982877D+01,
     8   -0.55840240154803193558206234914383D+00/
      data ws11/
     1   -0.33060749548823087215164151843138D+00,
     2    0.27756443359356502753642977829560D+00,
     3    0.27756443359356502753642977829566D+00,
     4   -0.33060749548823087215164151843138D+00,
     5   -0.33060749548823087215164151843142D+00,
     6    0.27756443359356502753642977829563D+00,
     7    0.15441773935233635780044566144219D+00,
     8    0.15441773935233635780044566144223D+00,
     9    0.15441773935233635780044566144218D+00,
     *    0.15441773935233635780044566144221D+00,
     1    0.15441773935233635780044566144219D+00,
     2    0.15441773935233635780044566144221D+00,
     3   -0.86709050832611438177567520851570D-01,
     4   -0.86709050832611438177567520851597D-01,
     5   -0.86709050832611438177567520851589D-01,
     6    0.26238526509582746748172123773961D+00,
     7    0.26238526509582746748172123773959D+00,
     8    0.13304314512878337934815904618956D+00,
     9    0.13304314512878337934815904618960D+00,
     *    0.26238526509582746748172123773964D+00,
     1    0.26238526509582746748172123773959D+00,
     2    0.13304314512878337934815904618958D+00,
     3    0.13304314512878337934815904618962D+00,
     4    0.88814537751316761219831570964191D-01,
     5    0.88814537751316761219831570964203D-01,
     6    0.26238526509582746748172123773963D+00,
     7    0.26238526509582746748172123773963D+00,
     8    0.13304314512878337934815904618961D+00,
     9    0.13304314512878337934815904618959D+00,
     *    0.88814537751316761219831570964194D-01,
     1    0.88814537751316761219831570964194D-01,
     2    0.88814537751316761219831570964193D-01,
     3    0.88814537751316761219831570964202D-01,
     4   -0.98153814425365692086065697958806D-01,
     5   -0.98153814425365692086065697958776D-01,
     6    0.58343111933623052481781567456194D-01,
     7   -0.41509343195923614596118480264073D-01,
     8   -0.98153814425365692086065697958807D-01,
     9    0.58343111933623052481781567456189D-01,
     *    0.58343111933623052481781567456179D-01,
     1   -0.41509343195923614596118480264088D-01,
     2   -0.98153814425365692086065697958795D-01,
     3    0.58343111933623052481781567456189D-01,
     4   -0.98153814425365692086065697958820D-01,
     5   -0.98153814425365692086065697958811D-01,
     6    0.58343111933623052481781567456187D-01,
     7   -0.41509343195923614596118480264093D-01,
     8    0.58343111933623052481781567456184D-01,
     9    0.82924935199242658126027258784698D-01,
     *    0.15921975806133698728709608686310D+00,
     1    0.15921975806133698728709608686312D+00,
     2    0.82924935199242658126027258784699D-01,
     3    0.82924935199242658126027258784696D-01,
     4    0.82924935199242658126027258784700D-01,
     5    0.15921975806133698728709608686308D+00,
     6    0.15921975806133698728709608686312D+00,
     7    0.15921975806133698728709608686312D+00,
     8    0.15921975806133698728709608686311D+00,
     9    0.82924935199242658126027258784695D-01,
     *    0.82924935199242658126027258784705D-01,
     1    0.62372970888033285888410203372807D-04,
     2    0.62372970888033285888410203383357D-04,
     3   -0.78745700332581909546338176367327D-01,
     4    0.62372970888033285888410203373414D-04,
     5   -0.78745700332581909546338176367324D-01,
     6    0.62372970888033285888410203375841D-04,
     7    0.62372970888033285888410203373081D-04,
     8    0.62372970888033285888410203368770D-04,
     9   -0.78745700332581909546338176367336D-01,
     *    0.53324245421032707363869883168046D-01,
     1    0.53324245421032707363869883168050D-01,
     2   -0.90840654190755230198986307765872D-02,
     3    0.53324245421032707363869883168049D-01,
     4    0.53324245421032707363869883168043D-01,
     5    0.53324245421032707363869883168048D-01,
     6    0.53324245421032707363869883168059D-01,
     7   -0.90840654190755230198986307765834D-02,
     8   -0.90840654190755230198986307765887D-02/

c    ... interpolation of order  12 , quadratures of order  12
c                   total number of elements is   91
      data xs12/
     1    0.00000000000000000000000000000000D+00,
     2   -0.26320956211281476846159549392598D+00,
     3    0.89775218532226704907166175696802D-01,
     4   -0.10738094366814341649813571706346D+00,
     5    0.00000000000000000000000000000000D+00,
     6    0.19715616220037012140530189276026D+00,
     7   -0.19715616220037012140530189276026D+00,
     8    0.26320956211281476846159549392599D+00,
     9    0.10738094366814341649813571706345D+00,
     *   -0.89775218532226704907166175696804D-01,
     1   -0.31398002165045282477268081667585D+00,
     2    0.31398002165045282477268081667584D+00,
     3   -0.22106323608647687942170621948653D+00,
     4    0.22106323608647687942170621948653D+00,
     5   -0.37868270882392359102574575880212D+00,
     6    0.37868270882392359102574575880212D+00,
     7    0.00000000000000000000000000000000D+00,
     8    0.15761947273744671160403953931560D+00,
     9   -0.15761947273744671160403953931560D+00,
     *    0.11203563049918022706928545250755D+00,
     1   -0.11203563049918022706928545250755D+00,
     2    0.42313469829753771452309591072842D+00,
     3   -0.42313469829753771452309591072842D+00,
     4    0.31109906779835748745381045822087D+00,
     5   -0.31109906779835748745381045822087D+00,
     6    0.00000000000000000000000000000000D+00,
     7    0.42888126434806003649405507999926D+00,
     8    0.33037118269093006016714181946048D+00,
     9    0.49715370215692802580331080276970D+00,
     *   -0.33037118269093006016714181946048D+00,
     1    0.53822456824648462865893839596012D+00,
     2   -0.42888126434806003649405507999926D+00,
     3    0.22229381726683381932525038000033D+00,
     4   -0.49715370215692802580331080276970D+00,
     5   -0.22229381726683381932525038000033D+00,
     6   -0.53822456824648462865893839596013D+00,
     7    0.45713353339945498669893845898309D+00,
     8   -0.45713353339945498669893845898309D+00,
     9    0.56928990525008176136017321971284D+00,
     *   -0.56928990525008176136017321971284D+00,
     1    0.68272437808867989309255722770434D-01,
     2   -0.68272437808867989309255722770435D-01,
     3    0.20785338555555456849179657649965D+00,
     4   -0.20785338555555456849179657649965D+00,
     5    0.34699608798324794203492283971251D+00,
     6   -0.34699608798324794203492283971251D+00,
     7    0.53160637893610859376686522769996D+00,
     8    0.43342750172503324029899881741566D+00,
     9    0.65040135072548963422685266769709D+00,
     *    0.60937334498753622918562492270399D+00,
     1    0.67783141359841164401057285216264D+00,
     2   -0.43342750172503324029899881741566D+00,
     3   -0.53160637893610859376686522769996D+00,
     4   -0.65040135072548963422685266769708D+00,
     5   -0.60937334498753622918562492270399D+00,
     6   -0.67783141359841164401057285216263D+00,
     7    0.11879497178938104045998743999712D+00,
     8   -0.11879497178938104045998743999712D+00,
     9    0.00000000000000000000000000000000D+00,
     *   -0.24440391187337840371157403474698D+00,
     1    0.24440391187337840371157403474697D+00,
     2    0.62278511464412670188255099120105D+00,
     3    0.77728998530389575009974626015424D+00,
     4    0.70430551250350918945550868585843D+00,
     5    0.75312214293056817532747129364856D+00,
     6   -0.62278511464412670188255099120105D+00,
     7   -0.70430551250350918945550868585843D+00,
     8   -0.75312214293056817532747129364855D+00,
     9   -0.77728998530389575009974626015424D+00,
     *    0.15450487065976904821719526895320D+00,
     1   -0.15450487065976904821719526895319D+00,
     2    0.48816630427058985871962607790125D-01,
     3   -0.48816630427058985871962607790118D-01,
     4    0.86258282879515102152547958435418D+00,
     5    0.78075738825929070707891370676494D+00,
     6    0.83777199487588837130364874582466D+00,
     7   -0.78075738825929070707891370676494D+00,
     8   -0.83777199487588837130364874582464D+00,
     9   -0.86258282879515102152547958435418D+00,
     *    0.81825440535860314446565877589247D-01,
     1   -0.81825440535860314446565877589249D-01,
     2    0.00000000000000000000000000000000D+00,
     3    0.92888203855806906625266601272113D+00,
     4    0.89899255037716570006025713949850D+00,
     5    0.97167204837555943212743819511901D+00,
     6   -0.89899255037716570006025713949850D+00,
     7   -0.92888203855806906625266601272113D+00,
     8    0.29889488180903366192408873222620D-01,
     9   -0.29889488180903366192408873222623D-01,
     *    0.00000000000000000000000000000000D+00,
     1   -0.97167204837555943212743819511901D+00/
      data ys12/
     1    0.00000000000000000000000000000000D+00,
     2    0.15196411153911712936023565681356D+00,
     3    0.17582458005141585126041185929627D+00,
     4   -0.16565990990491577717313403285882D+00,
     5   -0.30392822307823425872047131362713D+00,
     6   -0.10164670146500074087277826437452D-01,
     7   -0.10164670146500074087277826437454D-01,
     8    0.15196411153911712936023565681356D+00,
     9   -0.16565990990491577717313403285882D+00,
     *    0.17582458005141585126041185929627D+00,
     1   -0.18127645002005346400038333632772D+00,
     2   -0.18127645002005346400038333632772D+00,
     3   -0.30963420889144069541841710752610D+00,
     4   -0.30963420889144069541841710752611D+00,
     5   -0.36629273847965480407042359720113D-01,
     6   -0.36629273847965480407042359720112D-01,
     7    0.36255290004010692800076667265544D+00,
     8    0.34626348273940617582545946724622D+00,
     9    0.34626348273940617582545946724622D+00,
     *   -0.42391006250357781388154187545058D+00,
     1   -0.42391006250357781388154187545058D+00,
     2    0.11492932911049218124536404640106D+00,
     3    0.11492932911049218124536404640106D+00,
     4    0.30898073339308563263617782904952D+00,
     5    0.30898073339308563263617782904952D+00,
     6   -0.52785233712756023355532738280322D+00,
     7   -0.32644893411610334418883938166238D+00,
     8   -0.43074830746405250559665393775272D+00,
     9   -0.20819760307455759190604591376791D+00,
     *   -0.43074830746405250559665393775272D+00,
     1   -0.70735683156629000482540212728384D-01,
     2   -0.32644893411610334418883938166238D+00,
     3   -0.52901796484794651599674379450603D+00,
     4   -0.20819760307455759190604591376790D+00,
     5   -0.52901796484794651599674379450603D+00,
     6   -0.70735683156629000482540212728380D-01,
     7    0.26392616856378011677766369140161D+00,
     8    0.26392616856378011677766369140161D+00,
     9    0.71996889566679279882455267937019D-01,
     *    0.71996889566679279882455267937018D-01,
     1    0.53464653719066093609488529543029D+00,
     2    0.53464653719066093609488529543029D+00,
     3    0.50148399062068150607919415048110D+00,
     4    0.50148399062068150607919415048110D+00,
     5    0.45702107528126723611428852656901D+00,
     6    0.45702107528126723611428852656902D+00,
     7   -0.44409570386363078124516674956096D+00,
     8   -0.53245281341732011461383618196147D+00,
     9   -0.23833677704071135404973342720209D+00,
     *   -0.35182186476553672998232502346406D+00,
     1   -0.10913282048404233273478456560230D+00,
     2   -0.53245281341732011461383618196147D+00,
     3   -0.44409570386363078124516674956096D+00,
     4   -0.23833677704071135404973342720208D+00,
     5   -0.35182186476553672998232502346406D+00,
     6   -0.10913282048404233273478456560229D+00,
     7    0.68243248090434213529490017676305D+00,
     8    0.68243248090434213529490017676305D+00,
     9    0.70364372953107345996465004692812D+00,
     *    0.64158563390136244734862074756377D+00,
     1    0.64158563390136244734862074756376D+00,
     2   -0.53797201092013043746191904730010D+00,
     3   -0.27036172492055252240596650150382D+00,
     4   -0.46299956667162432770766856980520D+00,
     5   -0.37844668251764538399505923335094D+00,
     6   -0.53797201092013043746191904730010D+00,
     7   -0.46299956667162432770766856980520D+00,
     8   -0.37844668251764538399505923335094D+00,
     9   -0.27036172492055252240596650150383D+00,
     *    0.80833373584068295986788554880393D+00,
     1    0.80833373584068295986788554880392D+00,
     2    0.84144624918926971170272780315614D+00,
     3    0.84144624918926971170272780315613D+00,
     4   -0.40352854816335197971598553501712D+00,
     5   -0.54525436852316798494616493603548D+00,
     6   -0.48368788676112392779882849120030D+00,
     7   -0.54525436852316798494616493603548D+00,
     8   -0.48368788676112392779882849120029D+00,
     9   -0.40352854816335197971598553501712D+00,
     *    0.94878291668651996466215047105261D+00,
     1    0.94878291668651996466215047105261D+00,
     2    0.96737577352224785559765698240059D+00,
     3   -0.50177688691254012185937853423742D+00,
     4   -0.55354699905409421040322974282125D+00,
     5   -0.56099511869366430618964973895566D+00,
     6   -0.55354699905409421040322974282124D+00,
     7   -0.50177688691254012185937853423742D+00,
     8    0.10553238859666343322626082770587D+01,
     9    0.10553238859666343322626082770587D+01,
     *    0.11219902373873286123792994779113D+01,
     1   -0.56099511869366430618964973895566D+00/
      data ws12/
     1    0.70825511979016025649672084396615D+00,
     2   -0.55452901574144809397566791833739D-01,
     3   -0.12785124329904417833967582847636D+00,
     4   -0.12785124329904417833967582847630D+00,
     5   -0.55452901574144809397566791833737D-01,
     6   -0.12785124329904417833967582847632D+00,
     7   -0.12785124329904417833967582847635D+00,
     8   -0.55452901574144809397566791833691D-01,
     9   -0.12785124329904417833967582847634D+00,
     *   -0.12785124329904417833967582847630D+00,
     1    0.98728004939247109573918174483884D-01,
     2    0.98728004939247109573918174483900D-01,
     3    0.42723092160925074937652615427109D+00,
     4    0.42723092160925074937652615427108D+00,
     5    0.42723092160925074937652615427111D+00,
     6    0.42723092160925074937652615427105D+00,
     7    0.98728004939247109573918174483925D-01,
     8    0.42723092160925074937652615427106D+00,
     9    0.42723092160925074937652615427106D+00,
     *    0.32954891096976075135564697770326D-01,
     1    0.32954891096976075135564697770263D-01,
     2    0.32954891096976075135564697770267D-01,
     3    0.32954891096976075135564697770287D-01,
     4    0.32954891096976075135564697770297D-01,
     5    0.32954891096976075135564697770294D-01,
     6    0.96148571641549406009181398624637D-01,
     7   -0.14201978403578350349425271875852D+00,
     8   -0.57278711312670357089143166921152D-01,
     9   -0.14201978403578350349425271875853D+00,
     *   -0.57278711312670357089143166921096D-01,
     1   -0.57278711312670357089143166921083D-01,
     2   -0.14201978403578350349425271875855D+00,
     3    0.46015066083154958194960317510159D-01,
     4   -0.14201978403578350349425271875855D+00,
     5    0.46015066083154958194960317510168D-01,
     6   -0.57278711312670357089143166921137D-01,
     7    0.96148571641549406009181398624635D-01,
     8    0.96148571641549406009181398624635D-01,
     9    0.46015066083154958194960317510169D-01,
     *    0.46015066083154958194960317510169D-01,
     1   -0.14201978403578350349425271875851D+00,
     2   -0.14201978403578350349425271875855D+00,
     3   -0.57278711312670357089143166921138D-01,
     4   -0.57278711312670357089143166921109D-01,
     5    0.46015066083154958194960317510173D-01,
     6    0.46015066083154958194960317510168D-01,
     7    0.13421167339202804696131860911393D+00,
     8    0.88857611670139847103025195680205D-01,
     9    0.13421167339202804696131860911391D+00,
     *    0.32360982303398482493170651910052D+00,
     1    0.88857611670139847103025195680181D-01,
     2    0.88857611670139847103025195680186D-01,
     3    0.13421167339202804696131860911390D+00,
     4    0.13421167339202804696131860911392D+00,
     5    0.32360982303398482493170651910056D+00,
     6    0.88857611670139847103025195680197D-01,
     7    0.13421167339202804696131860911392D+00,
     8    0.13421167339202804696131860911394D+00,
     9    0.32360982303398482493170651910052D+00,
     *    0.88857611670139847103025195680175D-01,
     1    0.88857611670139847103025195680190D-01,
     2    0.56687268287631785232782878784483D-02,
     3    0.56687268287631785232782878784542D-02,
     4   -0.11967733198676215612318952545844D+00,
     5   -0.11967733198676215612318952545844D+00,
     6    0.56687268287631785232782878784676D-02,
     7   -0.11967733198676215612318952545844D+00,
     8   -0.11967733198676215612318952545849D+00,
     9    0.56687268287631785232782878784561D-02,
     *    0.56687268287631785232782878784639D-02,
     1    0.56687268287631785232782878784629D-02,
     2   -0.11967733198676215612318952545843D+00,
     3   -0.11967733198676215612318952545845D+00,
     4    0.74447882711149094942199074285036D-01,
     5    0.74447882711149094942199074285038D-01,
     6    0.13280783650162874258543931837688D+00,
     7    0.74447882711149094942199074285023D-01,
     8    0.13280783650162874258543931837689D+00,
     9    0.74447882711149094942199074285048D-01,
     *    0.74447882711149094942199074285016D-01,
     1    0.74447882711149094942199074285011D-01,
     2    0.13280783650162874258543931837688D+00,
     3   -0.30532011339816974629794615801175D-01,
     4   -0.30532011339816974629794615801170D-01,
     5    0.23689613996096841005823639047745D-01,
     6   -0.30532011339816974629794615801163D-01,
     7   -0.30532011339816974629794615801168D-01,
     8   -0.30532011339816974629794615801157D-01,
     9   -0.30532011339816974629794615801153D-01,
     *    0.23689613996096841005823639047729D-01,
     1    0.23689613996096841005823639047742D-01/

c
        npols=0
c        
        if( norder .eq. 0 ) then
        npols=1
        call ortho2arrmove(xs0,xsout,npols)
        call ortho2arrmove(ys0,ysout,npols)
        call ortho2arrmove(ws0,wsout,npols)
        endif
c
        if( norder .eq. 1 ) then
        npols=3
        call ortho2arrmove(xs1,xsout,npols)
        call ortho2arrmove(ys1,ysout,npols)
        call ortho2arrmove(ws1,wsout,npols)
        endif
c
        if( norder .eq. 2 ) then
        npols=6
        call ortho2arrmove(xs2,xsout,npols)
        call ortho2arrmove(ys2,ysout,npols)
        call ortho2arrmove(ws2,wsout,npols)
        endif
c
        if( norder .eq. 3 ) then
        npols=10
        call ortho2arrmove(xs3,xsout,npols)
        call ortho2arrmove(ys3,ysout,npols)
        call ortho2arrmove(ws3,wsout,npols)
        endif
c
        if( norder .eq. 4 ) then
        npols=15
        call ortho2arrmove(xs4,xsout,npols)
        call ortho2arrmove(ys4,ysout,npols)
        call ortho2arrmove(ws4,wsout,npols)
        endif
c
        if( norder .eq. 5 ) then
        npols=21
        call ortho2arrmove(xs5,xsout,npols)
        call ortho2arrmove(ys5,ysout,npols)
        call ortho2arrmove(ws5,wsout,npols)
        endif
c
        if( norder .eq. 6 ) then
        npols=28
        call ortho2arrmove(xs6,xsout,npols)
        call ortho2arrmove(ys6,ysout,npols)
        call ortho2arrmove(ws6,wsout,npols)
        endif
c
        if( norder .eq. 7 ) then
        npols=36
        call ortho2arrmove(xs7,xsout,npols)
        call ortho2arrmove(ys7,ysout,npols)
        call ortho2arrmove(ws7,wsout,npols)
        endif
c
        if( norder .eq. 8 ) then
        npols=45
        call ortho2arrmove(xs8,xsout,npols)
        call ortho2arrmove(ys8,ysout,npols)
        call ortho2arrmove(ws8,wsout,npols)
        endif
c
        if( norder .eq. 9 ) then
        npols=55
        call ortho2arrmove(xs9,xsout,npols)
        call ortho2arrmove(ys9,ysout,npols)
        call ortho2arrmove(ws9,wsout,npols)
        endif
c
        if( norder .eq. 10 ) then
        npols=66
        call ortho2arrmove(xs10,xsout,npols)
        call ortho2arrmove(ys10,ysout,npols)
        call ortho2arrmove(ws10,wsout,npols)
        endif
c
        if( norder .eq. 11 ) then
        npols=78
        call ortho2arrmove(xs11,xsout,npols)
        call ortho2arrmove(ys11,ysout,npols)
        call ortho2arrmove(ws11,wsout,npols)
        endif
c
        if( norder .eq. 12 ) then
        npols=91
        call ortho2arrmove(xs12,xsout,npols)
        call ortho2arrmove(ys12,ysout,npols)
        call ortho2arrmove(ws12,wsout,npols)
        endif
c
c
c       on the standard triangle, the sum of the weights should be
c       sqrt(3.0d0)  
c       
        d=0
        do 1200 i=1,npols
        d=d+wsout(i)
 1200 continue
c
cccc        call prin2('in ortho2smexps, sum of weights=*',d,1)
c
        do 1400 i=1,npols
        wsout(i)=wsout(i)/d
        wsout(i)=wsout(i)*sqrt(3.0d0)
 1400 continue
c
c       get the interpolation matrices
c
        call ortho2intpmatr(norder,xsout,ysout,npols,umatr,vmatr)
c
        return
        end
c
c
c
c
c
        subroutine ortho2smexps_old(itype,norder,npols,xsout,ysout,
     1     umatr,vmatr,wsout)
        implicit real *8 (a-h,o-z)
        dimension xs0(1),ys0(1),ws0(1)
        dimension xs1(3),ys1(3),ws1(3)
        dimension xs2(6),ys2(6),ws2(6)
        dimension xs3(10),ys3(10),ws3(10)
        dimension xs4(15),ys4(15),ws4(15)
        dimension xs5(21),ys5(21),ws5(21)
        dimension xs6(28),ys6(28),ws6(28)
        dimension xs7(36),ys7(36),ws7(36)
        dimension xs8(45),ys8(45),ws8(45)
        dimension xsout(1),ysout(1),wsout(1),umatr(1),vmatr(1)
c
c       This subroutine constructs (or rather retrieves) the
c       interpolation nodes for the polynomials (i.e. smooth functions)
c       on the standard triangle with the vertices
c
c       (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))            (1)
c
c       and the corresponding quadrature weights. It also constructs the
c       matrix vmatr converting the coefficients of the polynomial
c       expansion to its values at the interpolation nodes, and its
c       inverse umatr, converting the values of a function at the
c       interpolation nodes into the coefficients of the polynomial
c       expansion.
c
c       The tables are valid up to order 8.
c       
c
c         Input parameters:
c
c    itype - the type of the calculation to be performed. currently
c          unused
c    norder - the order of the expansion
c
c
c         Output parameters:
c
c    npols - the number of the polynomials, i.e. the terms in the
c          expansion
c    xsout - the x-coordinates of the interpolation nodes (npols of them)
c    ysout - the y-coordinates of the interpolation nodes (npols of them)
c    umatr - the npols*npols matrix, converting the values of the polynomial
c          at the interpolation nodes into the coefficients of its expansion
c    vmatr - the npols*npols matrix, converting the coefficients of 
c          the expansion into its values at the interpolation nodes.
c    wsout - the corresponding quadrature weigths (npols of them)
c
c
c       NOTE: the nodes are fully symmetric only for the orders 
c       0, 1, 2, 3, 4, and 6.
c       
c
c
c       ... interpolation of order 0, quadratures of order 1
c
        data xs0/
     1  0.0000000000000000D+00/
c
        data ys0/
     2  0.0000000000000000D+00/
c
        data ws0/
     3  0.4559014113909554D+01/
c
c       ... interpolation of order 1, quadratures of order 2
c
        data xs1/
     1  -.3402060691549643D-17,-.5000000000000001D+00,
     2  0.4999999999999999D+00/
c
        data ys1/
     3  0.5773502691896258D+00,-.2886751345948128D+00,
     4  -.2886751345948131D+00/
c
        data ws1/
     5  0.1519671371303185D+01,0.1519671371303185D+01,
     6  0.1519671371303185D+01/
c
c       ... interpolation of order 2, quadratures of order 4
c
        data xs2/
     1  0.0000000000000000D+00,0.3378454727478947D+00,
     2  -.3378454727478947D+00,0.0000000000000000D+00,
     3  -.7252713594706878D+00,0.7252713594706878D+00/
c
        data ys2/
     5  -.3901103492709867D+00,0.1950551746354934D+00,
     6  0.1950551746354934D+00,0.8374712292518548D+00,
     7  -.4187356146259274D+00,-.4187356146259274D+00/
c
        data ws2/
     9  0.5091999100648037D+00,0.5091999100648037D+00,
     *  0.5091999100648037D+00,0.2506357755867889D+00,
     1  0.2506357755867889D+00,0.2506357755867889D+00/
c
c       ... interpolation of order 3, quadratures of order 5
c
        data xs3/
     1  -.7342772058729118D+00,0.6560067324471173D+00,
     2  0.7827047342579452D-01,0.7342772058729118D+00,
     3  -.7827047342579452D-01,-.6560067324471173D+00,
     4  0.0000000000000000D+00,0.3808440693425543D+00,
     5  -.3808440693425543D+00,0.0000000000000000D+00/
c
        data ys3/
     7  -.3335561846665681D+00,-.4691246213725138D+00,
     8  0.8026808060390819D+00,-.3335561846665681D+00,
     9  0.8026808060390819D+00,-.4691246213725138D+00,
     *  -.4397608519083925D+00,0.2198804259541962D+00,
     1  0.2198804259541962D+00,0.0000000000000000D+00/
c
        data ws3/
     3  0.1448211723381508D+00,0.1448211723381508D+00,
     4  0.1448211723381508D+00,0.1448211723381508D+00,
     5  0.1448211723381508D+00,0.1448211723381508D+00,
     6  0.3355329922134641D+00,0.3355329922134641D+00,
     7  0.3355329922134641D+00,0.4039810462854807D+00/
c
c       ... interpolation of order 4, quadratures of order 7
c
        data xs4/
     1  0.0000000000000000D+00,-.8725503636530545D+00,
     2  0.8725503636530545D+00,0.0000000000000000D+00,
     3  0.4228790148176862D+00,-.4228790148176862D+00,
     4  -.5276838455327671D+00,0.6918311610694409D+00,
     5  -.1641473155366737D+00,0.5276838455327671D+00,
     6  0.1641473155366737D+00,-.6918311610694409D+00,
     7  0.0000000000000000D+00,-.2737020529931245D+00,
     8  0.2737020529931245D+00/
c
        data ys4/
     9  0.1007534374673194D+01,-.5037671873365969D+00,
     *  -.5037671873365969D+00,-.4882986260792698D+00,
     1  0.2441493130396349D+00,0.2441493130396349D+00,
     2  -.4941994038890660D+00,-.2098879134535071D+00,
     3  0.7040873173425731D+00,-.4941994038890660D+00,
     4  0.7040873173425731D+00,-.2098879134535071D+00,
     5  0.3160439079466673D+00,-.1580219539733337D+00,
     6  -.1580219539733337D+00/
c
        data ws4/
     7  0.5235344496561399D-01,0.5235344496561399D-01,
     8  0.5235344496561399D-01,0.1657491147295457D+00,
     9  0.1657491147295457D+00,0.1657491147295457D+00,
     *  0.1259490797475963D+00,0.1259490797475963D+00,
     1  0.1259490797475963D+00,0.1259490797475963D+00,
     2  0.1259490797475963D+00,0.1259490797475963D+00,
     3  0.2898349664612402D+00,0.2898349664612402D+00,
     4  0.2898349664612402D+00/
c
c       ... interpolation of order 5, quadratures of order 9
c
        data xs5/
     1  -.2879034948781018D+00,0.5869272848532110D+00,
     2  -.2990237899751090D+00,-.5904715201372642D+00,
     3  0.7328093388942800D+00,-.1423378187570155D+00,
     4  0.6078058010423891D+00,0.1587394264466923D+00,
     5  -.7665452274890812D+00,-.8771723974844249D+00,
     6  0.8831360952314307D+00,-.5963697747005392D-02,
     7  -.5553614900809978D-01,0.2434289573805245D+00,
     8  -.1878928083724246D+00,0.4504610872757508D+00,
     9  0.4790286327471319D-01,-.4983639505504639D+00,
     *  0.1406401086124484D+00,0.3745241777094893D+00,
     *  -.5151642863219376D+00/
c        
        data ys5/
     *  -.5115040915409690D+00,0.6420305367725199D-02,
     *  0.5050837861732437D+00,-.5052664470505116D+00,
     *  -.2587301131248299D+00,0.7639965601753413D+00,
     *  -.5342133440268485D+00,0.7934819362836834D+00,
     *  -.2592685922568346D+00,-.5133220048125410D+00,
     *  -.5029925773137429D+00,0.1016314582126284D+01,
     *  -.2490237375648100D+00,0.7641615291303257D-01,
     *  0.1726075846517774D+00,-.3153872920113250D+00,
     *  0.5478043910028219D+00,-.2324170989914966D+00,
     *  -.5136618742034490D+00,0.3786288439511074D+00,
     *  0.1350330302523418D+00/
c
        data ws5/
     *  0.1519532255725797D+00,0.1519532255725797D+00,
     *  0.1519532255725797D+00,0.1469219802163211D+00,
     *  0.1469219802163211D+00,0.1469219802163211D+00,
     *  0.1221762882256253D+00,0.1221762882256253D+00,
     *  0.1221762882256253D+00,0.9010698462934753D-01,
     *  0.9010698462934753D-01,0.9010698462934753D-01,
     *  0.4581969425656957D+00,0.4581969425656957D+00,
     *  0.4581969425656957D+00,0.3456282846321344D+00,
     *  0.3456282846321344D+00,0.3456282846321344D+00,
     *  0.2046876654614801D+00,0.2046876654614801D+00,
     *  0.2046876654614801D+00/
c
c       ... interpolation of order 6, quadratures of order 10
c
        data xs6/
     1  -.6970050189800155D+00,0.8163460245057595D+00,
     2  -.1193410055257440D+00,0.6970050189800155D+00,
     3  0.1193410055257440D+00,-.8163460245057595D+00,
     4  -.2211000255164651D+00,0.3895271748634169D+00,
     5  -.1684271493469518D+00,0.2211000255164651D+00,
     6  0.1684271493469518D+00,-.3895271748634169D+00,
     7  -.3849378874153524D+00,0.6475290152671817D+00,
     8  -.2625911278518294D+00,0.3849378874153524D+00,
     9  0.2625911278518294D+00,-.6475290152671817D+00,
     *  0.0000000000000000D+00,0.4563731941990658D+00,
     1  -.4563731941990658D+00,0.0000000000000000D+00,
     2  -.6158294745366677D+00,0.6158294745366677D+00,
     3  0.0000000000000000D+00,-.9095920329874295D+00,
     4  0.9095920329874295D+00,0.0000000000000000D+00/
c
        data ys6/
     6  -.5402191586659300D+00,-.3335144736689832D+00,
     7  0.8737336323349132D+00,-.5402191586659300D+00,
     8  0.8737336323349132D+00,-.3335144736689832D+00,
     9  -.3221350792783721D+00,-.3041069923546031D-01,
     *  0.3525457785138324D+00,-.3221350792783721D+00,
     1  0.3525457785138324D+00,-.3041069923546031D-01,
     2  -.5254581096246618D+00,-.7063693456847844D-01,
     3  0.5960950441931402D+00,-.5254581096246618D+00,
     4  0.5960950441931402D+00,-.7063693456847844D-01,
     5  -.5269743730435200D+00,0.2634871865217600D+00,
     6  0.2634871865217600D+00,0.7110986257973017D+00,
     7  -.3555493128986509D+00,-.3555493128986509D+00,
     8  0.1050306410196063D+01,-.5251532050980314D+00,
     9  -.5251532050980314D+00,0.0000000000000000D+00/
c
        data ws6/
     1  0.3566346022748086D-01,0.3566346022748086D-01,
     2  0.3566346022748086D-01,0.3566346022748086D-01,
     3  0.3566346022748086D-01,0.3566346022748086D-01,
     4  0.1537711927527378D+00,0.1537711927527378D+00,
     5  0.1537711927527378D+00,0.1537711927527378D+00,
     6  0.1537711927527378D+00,0.1537711927527378D+00,
     7  0.5963474204157574D-01,0.5963474204157574D-01,
     8  0.5963474204157574D-01,0.5963474204157574D-01,
     9  0.5963474204157574D-01,0.5963474204157574D-01,
     *  0.6881925595930596D-01,0.6881925595930596D-01,
     1  0.6881925595930596D-01,0.1043099501289462D+00,
     2  0.1043099501289462D+00,0.1043099501289462D+00,
     3  0.2574634864641487D-01,0.2574634864641487D-01,
     4  0.2574634864641487D-01,0.1884640226200104D+00/
c
c       ... interpolation of order 7, quadratures of order 13
c
        data xs7/
     1  -.1734921014384450D-01,0.1675838485269257D+00,
     2  -.1502346383830812D+00,-.3257509002404932D+00,
     3  0.3016835664569898D+00,0.2406733378350348D-01,
     4  -.2042415343626712D-01,0.4832529946042317D+00,
     5  -.4628288411679644D+00,0.3948715670808531D+00,
     6  0.1571611895246048D+00,-.5520327566054578D+00,
     7  -.7312664063197668D+00,0.8360664633170760D+00,
     8  -.1048000569973090D+00,0.3802568182919678D+00,
     9  0.2813989891257929D+00,-.6616558074177605D+00,
     *  -.3478853768686158D+00,0.5134495579307109D+00,
     1  -.1655641810620950D+00,-.4087860152682592D+00,
     2  0.6719507745444188D+00,-.2631647592761593D+00,
     3  -.6609371532209790D+00,0.6733670469640336D+00,
     4  -.1242989374305437D-01,0.2364343818548231D-01,
     5  0.3473902844994198D+00,-.3710337226849019D+00,
     6  0.7171575469189121D+00,0.1079608700314365D+00,
     7  -.8251184169503485D+00,-.9253514478845177D+00,
     8  0.9242023578994309D+00,0.1149089985087004D-02/
c        
        data ys7/
     *  -.1834925889709321D+00,0.7672143776530198D-01,
     1  0.1067711512056301D+00,-.1602818066654472D+00,
     2  -.2019676515811940D+00,0.3622494582466411D+00,
     3  -.5462206025584928D+00,0.2554224655526477D+00,
     4  0.2907981370058451D+00,-.4094533157058446D+00,
     5  0.5466954661771121D+00,-.1372421504712673D+00,
     6  -.5432095387750170D+00,-.3616905154195630D+00,
     7  0.9049000541945798D+00,-.5444729406449883D+00,
     8  0.6015485349255814D+00,-.5707559428059292D-01,
     9  -.3920287649909509D+00,-.1052631914778692D+00,
     *  0.4972919564688201D+00,-.5398892051747115D+00,
     1  -.8407447134677026D-01,0.6239636765214818D+00,
     2  -.3959450483266593D+00,-.3744158408310062D+00,
     3  0.7703608891576653D+00,-.4147822939401578D+00,
     4  0.2278669650715135D+00,0.1869153288686443D+00,
     5  -.5387135775141975D+00,0.8904334429046070D+00,
     6  -.3517198653904092D+00,-.5329250527067106D+00,
     7  -.5349153349433492D+00,0.1067840387650060D+01/
c        
        data ws7/
     9  0.2299507991422753D+00,0.2299507991422753D+00,
     *  0.2299507991422753D+00,0.1879979645110639D+00,
     1  0.1879979645110639D+00,0.1879979645110639D+00,
     2  0.8541986655788668D-01,0.8541986655788668D-01,
     3  0.8541986655788668D-01,0.1612184424444836D+00,
     4  0.1612184424444836D+00,0.1612184424444836D+00,
     5  0.6212600156028678D-01,0.6212600156028678D-01,
     6  0.6212600156028678D-01,0.8421986801721809D-01,
     7  0.8421986801721809D-01,0.8421986801721809D-01,
     8  0.1823561575587639D+00,0.1823561575587639D+00,
     9  0.1823561575587639D+00,0.9100634002058296D-01,
     *  0.9100634002058296D-01,0.9100634002058296D-01,
     1  0.1389110306339348D+00,0.1389110306339348D+00,
     2  0.1389110306339348D+00,0.1862000629703836D+00,
     3  0.1862000629703836D+00,0.1862000629703836D+00,
     4  0.7320797987119952D-01,0.7320797987119952D-01,
     5  0.7320797987119952D-01,0.3705685801510442D-01,
     6  0.3705685801510442D-01,0.3705685801510442D-01/
c        
c       ... interpolation of order 8, quadratures of order 14
c
        data xs8/
     1  0.5392743522783505D+00,0.2084645620209433D+00,
     2  -.7477389142992936D+00,-.4388045073864397D-01,
     3  0.5069210101200965D+00,-.4630405593814523D+00,
     4  0.8409138230263630D+00,-.3369927369312320D-01,
     5  -.8072145493332398D+00,-.7039847068812235D+00,
     6  0.8391891611726698D+00,-.1352044542914461D+00,
     7  0.1261699049844250D+00,0.2733943663737719D+00,
     8  -.3995642713581968D+00,0.8290725673809252D+00,
     9  0.7347786396479916D-01,-.9025504313457242D+00,
     *  0.9533632917085324D+00,-.9547868047188213D-02,
     1  -.9438154236613441D+00,0.6150807756135514D-01,
     2  0.1203425522238438D+00,-.1818506297851989D+00,
     3  -.1580088857546108D+00,0.4674239501161907D+00,
     4  -.3094150643615797D+00,0.6740726399906883D+00,
     5  0.7252413012069769D-01,-.7465967701113858D+00,
     6  -.2821211331054279D+00,0.3665692628510035D+00,
     7  -.8444812974557550D-01,0.2554286331982036D+00,
     8  0.3301664346372928D+00,-.5855950678354962D+00,
     9  0.4224944490571427D+00,0.1123898752131720D+00,
     *  -.5348843242703145D+00,-.4026168643831402D+00,
     1  0.6726031500275402D+00,-.2699862856443997D+00,
     2  -.5460071664916822D+00,0.6468488480175678D+00,
     3  -.1008416815258853D+00/
c
        data ys8/
     4  -.5520643344535446D+00,0.7430574559092223D+00,
     5  -.1909931214556775D+00,-.5600075732553113D+00,
     6  0.2420022015584782D+00,0.3180053716968331D+00,
     7  -.4465892526131087D+00,0.9515473594408763D+00,
     8  -.5049581068277673D+00,-.5625664161848603D+00,
     9  -.3283854319424513D+00,0.8909518481273113D+00,
     *  -.3885328506480359D+00,0.3035327682335988D+00,
     1  0.8500008241443724D-01,-.5635101990342221D+00,
     2  0.9997530044497780D+00,-.4362428054155555D+00,
     3  -.5393996247289663D+00,0.1095336642019626D+01,
     4  -.5559370172906597D+00,-.1744713149801904D+00,
     5  0.1405032151961723D+00,0.3396809978401812D-01,
     6  -.4485082141257445D+00,0.8741439797570608D-01,
     7  0.3610938161500384D+00,-.4729196722478419D+00,
     8  0.8202238663518993D+00,-.3473041941040571D+00,
     9  -.2603950130248381D+00,-.1141265617013325D+00,
     *  0.3745215747261706D+00,-.5287151499661609D+00,
     1  0.4855652601866619D+00,0.4314988977949913D-01,
     2  -.3737039333112904D+00,0.5527428924970410D+00,
     3  -.1790389591857505D+00,-.5442042644204922D+00,
     4  -.7657430033758761D-01,0.6207785647580797D+00,
     5  -.4316793285024467D+00,-.2570164125789331D+00,
     6  0.6886957410813797D+00/
c
        data ws8/
     7  0.5184823261020631D-01,0.5184823261020631D-01,
     8  0.5184823261020631D-01,0.4950578742136484D-01,
     9  0.4950578742136484D-01,0.4950578742136484D-01,
     *  0.5310054200699969D-01,0.5310054200699969D-01,
     1  0.5310054200699969D-01,0.3178186833114997D-01,
     2  0.3178186833114997D-01,0.3178186833114997D-01,
     3  0.1410377080685789D+00,0.1410377080685789D+00,
     4  0.1410377080685789D+00,0.2544794411310312D-01,
     5  0.2544794411310312D-01,0.2544794411310312D-01,
     6  0.1710801079719154D-01,0.1710801079719154D-01,
     7  0.1710801079719154D-01,0.2355757336102695D+00,
     8  0.2355757336102695D+00,0.2355757336102695D+00,
     9  0.1466686511742485D+00,0.1466686511742485D+00,
     *  0.1466686511742485D+00,0.8671140224962312D-01,
     1  0.8671140224962312D-01,0.8671140224962312D-01,
     2  0.2114874479707131D+00,0.2114874479707131D+00,
     3  0.2114874479707131D+00,0.9135931666336268D-01,
     4  0.9135931666336268D-01,0.9135931666336268D-01,
     5  0.1652301204866729D+00,0.1652301204866729D+00,
     6  0.1652301204866729D+00,0.7210145943146058D-01,
     7  0.7210145943146058D-01,0.7210145943146058D-01,
     8  0.1407071463682392D+00,0.1407071463682392D+00,
     9  0.1407071463682392D+00/
c
c
        npols=0
c        
        if( norder .eq. 0 ) then
        npols=1
        call ortho2arrmove(xs0,xsout,npols)
        call ortho2arrmove(ys0,ysout,npols)
        call ortho2arrmove(ws0,wsout,npols)
        endif
c
        if( norder .eq. 1 ) then
        npols=3
        call ortho2arrmove(xs1,xsout,npols)
        call ortho2arrmove(ys1,ysout,npols)
        call ortho2arrmove(ws1,wsout,npols)
        endif
c
        if( norder .eq. 2 ) then
        npols=6
        call ortho2arrmove(xs2,xsout,npols)
        call ortho2arrmove(ys2,ysout,npols)
        call ortho2arrmove(ws2,wsout,npols)
        endif
c
        if( norder .eq. 3 ) then
        npols=10
        call ortho2arrmove(xs3,xsout,npols)
        call ortho2arrmove(ys3,ysout,npols)
        call ortho2arrmove(ws3,wsout,npols)
        endif
c
        if( norder .eq. 4 ) then
        npols=15
        call ortho2arrmove(xs4,xsout,npols)
        call ortho2arrmove(ys4,ysout,npols)
        call ortho2arrmove(ws4,wsout,npols)
        endif
c
        if( norder .eq. 5 ) then
        npols=21
        call ortho2arrmove(xs5,xsout,npols)
        call ortho2arrmove(ys5,ysout,npols)
        call ortho2arrmove(ws5,wsout,npols)
        endif
c
        if( norder .eq. 6 ) then
        npols=28
        call ortho2arrmove(xs6,xsout,npols)
        call ortho2arrmove(ys6,ysout,npols)
        call ortho2arrmove(ws6,wsout,npols)
        endif
c
        if( norder .eq. 7 ) then
        npols=36
        call ortho2arrmove(xs7,xsout,npols)
        call ortho2arrmove(ys7,ysout,npols)
        call ortho2arrmove(ws7,wsout,npols)
        endif
c
        if( norder .eq. 8 ) then
        npols=45
        call ortho2arrmove(xs8,xsout,npols)
        call ortho2arrmove(ys8,ysout,npols)
        call ortho2arrmove(ws8,wsout,npols)
        endif

c
c       on the standard triangle, the sum of the weights should be
c       sqrt(3.0d0)  
c       
        d=0
        do 1200 i=1,npols
        d=d+wsout(i)
 1200 continue
c
cccc        call prin2('in ortho2smexps, sum of weights=*',d,1)
c
        do 1400 i=1,npols
        wsout(i)=wsout(i)/d
        wsout(i)=wsout(i)*sqrt(3.0d0)
 1400 continue
c
c       get the interpolation matrices
c
        call ortho2intpmatr(norder,xsout,ysout,npols,umatr,vmatr)
c
        return
        end
c
c
c
c
c
        subroutine ortho2sfexps_old(itype,norder,npols,xsout,ysout,
     1     umatr,vmatr,wsout)
        implicit real *8 (a-h,o-z)
        dimension xs0(1),ys0(1),ws0(1)
        dimension xs1(3),ys1(3),ws1(3)
        dimension xs2(6),ys2(6),ws2(6)
        dimension xs3(10),ys3(10),ws3(10)
        dimension xs4(15),ys4(15),ws4(15)
        dimension xs5(21),ys5(21),ws5(21)
        dimension xs6(28),ys6(28),ws6(28)
        dimension xsout(1),ysout(1),wsout(1),umatr(1),vmatr(1)
c
c       This subroutine constructs (or rather retrieves) the
c       interpolation nodes for the polynomials (i.e. smooth functions)
c       on the standard triangle with the vertices
c
c       (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))            (1)
c
c       and the corresponding quadrature weights. It also constructs the
c       matrix vmatr converting the coefficients of the polynomial
c       expansion to its values at the interpolation nodes, and its
c       inverse umatr, converting the values of a function at the
c       interpolation nodes into the coefficients of the polynomial
c       expansion.
c       
c       The constructed nodes are as far away from the boundary as
c       reasonably possible.  The nodes are fully symmetric and the
c       corresponding quadrature weigths are positive. The quadrature is
c       of low order and will integrate only the polynomials itself but
c       not their pairwise products (user beware).
c
c       The tables are valid up to order 6.
c       
c
c
c         Input parameters:
c
c    itype - the type of the calculation to be performed. currently
c          unused
c    norder - the order of the expansion
c
c
c         Output parameters:
c
c    npols - the number of the polynomials, i.e. the terms in the
c          expansion
c    xsout - the x-coordinates of the interpolation nodes (npols of them)
c    ysout - the y-coordinates of the interpolation nodes (npols of them)
c    umatr - the npols*npols matrix, converting the values of the polynomial
c          at the interpolation nodes into the coefficients of its expansion
c    vmatr - the npols*npols matrix, converting the coefficients of 
c          the expansion into its values at the interpolation nodes.
c    wsout - the corresponding quadrature weigths (npols of them)
c
c
c
c       ... interpolation of order 0, quadratures of order 1
c
        data xs0/
     1  0.0000000000000000D+00/
c
        data ys0/
     2  0.0000000000000000D+00/
c
        data ws0/
     3  0.4559014113909554D+01/
c
c       ... interpolation of order 1, quadratures of order 1
c
c  Data for   3 nodes
c
c        distance = .5
c
        data xs1/
     1  0.0000000000000000D+00,-.5000000000000001D+00,
     2  0.4999999999999999D+00/
c
        data ys1/
     1  0.5773502691896258D+00,-.2886751345948128D+00,
     2  -.2886751345948131D+00/
c
        data ws1/
     1  0.4386913376508305D+00,0.4386913376508308D+00,
     2  0.4386913376508309D+00/
c
c       ... interpolation of order 2, quadratures of order 2
c
c  Data for   6 nodes
c        
c        distance = .53
c
        data xs2/
     1  0.0000000000000000D+00,-.5300000000000001D+00,
     2  0.5299999999999999D+00,-.2650000000000000D+00,
     3  -.5551115123125783D-16,0.2650000000000000D+00/
c
        data ys2/
     1  0.6119912853410034D+00,-.3059956426705016D+00,
     2  -.3059956426705019D+00,0.1529978213352508D+00,
     3  -.3059956426705017D+00,0.1529978213352507D+00/
c
        data ws2/
     1  0.3743478591488220D+00,0.3743478591488221D+00,
     2  0.3743478591488218D+00,0.6434347850200858D-01,
     3  0.6434347850200872D-01,0.6434347850200892D-01/
c
c       ... interpolation of order 3, quadratures of order 3
c
c  Data for  10 nodes
c        
c        distance = .68
c
        data xs3/
     1  -.6800000000000000D+00,0.6799999999999999D+00,
     2  0.2775557561562891D-15,-.3164356435643564D+00,
     3  0.4982178217821783D+00,-.1817821782178217D+00,
     4  0.3164356435643564D+00,0.1817821782178220D+00,
     5  -.4982178217821784D+00,-.6732673267326740D-02/
c
        data ys3/
     1  -.3925981830489457D+00,-.3925981830489456D+00,
     2  0.7851963660978909D+00,-.3925981830489457D+00,
     3  -.7774221446513777D-01,0.4703403975140834D+00,
     4  -.3925981830489457D+00,0.4703403975140833D+00,
     5  -.7774221446513743D-01,0.3887110723256777D-02/
c
        data ws3/
     1  0.1001316929310150D+00,0.1000027750773283D+00,
     2  0.1001316929310150D+00,0.1661504331210198D+00,
     3  0.1663721411523347D+00,0.1661034041446803D+00,
     4  0.1663721411523346D+00,0.1661504331210194D+00,
     5  0.1661034041446801D+00,0.1855589517706505D-01/
c
c       ... interpolation of order 4, quadratures of order 4
c        
c  Data for  15 nodes
c        
c        distance = .75
c
        data xs4/
     1  -.7500000000000000D+00,0.7500000000000000D+00,
     2  0.2220446049250313D-15,-.4950000000000000D+00,
     3  0.6225000000000002D+00,-.1275000000000000D+00,
     4  0.4950000000000000D+00,0.1275000000000004D+00,
     5  -.6225000000000003D+00,0.0000000000000000D+00,
     6  0.3750000000000002D+00,-.3750000000000000D+00,
     7  0.7425742574257432D-02,-.2747524752475248D+00,
     8  0.2673267326732672D+00/
c
        data ys4/
     1  -.4330127018922195D+00,-.4330127018922194D+00,
     2  0.8660254037844386D+00,-.4330127018922196D+00,
     3  -.2121762239271874D+00,0.6451889258194069D+00,
     4  -.4330127018922196D+00,0.6451889258194069D+00,
     5  -.2121762239271870D+00,-.4330127018922195D+00,
     6  0.2165063509461096D+00,0.2165063509461099D+00,
     7  0.3129695766151684D+00,-.1500539065963135D+00,
     8  -.1629156700188549D+00/
c
        data ws4/
     1  0.1134953065507076D+00,0.1134953065507077D+00,
     2  0.1134953065507078D+00,0.1694230042014065D-01,
     3  0.1694230042014019D-01,0.1694230042014065D-01,
     4  0.1572168617610268D-01,0.1572168617610206D-01,
     5  0.1572168617610268D-01,0.2046076716055766D+00,
     6  0.2046076716055767D+00,0.2046076716055766D+00,
     7  0.8792437289830354D-01,0.8792437289830318D-01,
     8  0.8792437289830336D-01/
c
c       ... interpolation of order 5, quadratures of order 5
c        
c  Data for  21 nodes
c        
c        distance = .85
c
        data xs5/
     1  -.8500000000000000D+00,0.8500000000000000D+00,
     2  0.2220446049250313D-15,-.6460000000000000D+00,
     3  0.7480000000000000D+00,-.1019999999999997D+00,
     4  0.6460000000000000D+00,0.1020000000000003D+00,
     5  -.7480000000000001D+00,-.2440594059405941D+00,
     6  0.5470297029702971D+00,-.3029702970297028D+00,
     7  0.2440594059405941D+00,0.3029702970297031D+00,
     8  -.5470297029702971D+00,-.4675000000000000D+00,
     9  0.4675000000000000D+00,0.1387778780781446D-15,
     *  -.8415841584158423D-02,0.2272277227722773D+00,
     *  -.2188118811881188D+00/
c        
        data ys5/
     1  -.4907477288111821D+00,-.4907477288111819D+00,
     2  0.9814954576223637D+00,-.4907477288111819D+00,
     3  -.3140785464391566D+00,0.8048262752503383D+00,
     4  -.4907477288111819D+00,0.8048262752503382D+00,
     5  -.3140785464391560D+00,-.4907477288111819D+00,
     6  0.3401221882849764D-01,0.4567355099826843D+00,
     7  -.4907477288111819D+00,0.4567355099826841D+00,
     8  0.3401221882849803D-01,-.2699112508461502D+00,
     9  -.2699112508461501D+00,0.5398225016923002D+00,
     *  -.2575210854157688D+00,0.1214722101017777D+00,
     *  0.1360488753139912D+00/
c
        data ws5/
     1  0.2205448166752153D-01,0.2205448166752149D-01,
     2  0.2205448166752149D-01,0.4780154212294979D-01,
     3  0.4780154212294977D-01,0.4780154212294993D-01,
     4  0.4700114109582408D-01,0.4700114109582394D-01,
     5  0.4700114109582395D-01,0.6759874001906731D-01,
     6  0.6759874001906717D-01,0.6759874001906728D-01,
     7  0.7006504569617590D-01,0.7006504569617572D-01,
     8  0.7006504569617569D-01,0.4003922816302670D-01,
     9  0.4003922816302631D-01,0.4003922816302625D-01,
     *  0.1441311588862657D+00,0.1441311588862662D+00,
     *  0.1441311588862660D+00/
c
c       ... interpolation of order 6, quadratures of order 6
c        
c  Data for  28 nodes
c        
c        distance = .89
c
        data xs6/
     1  -.8900000000000000D+00,0.8899999999999999D+00,
     2  0.3885780586188048D-15,-.7313861386138615D+00,
     3  0.8106930693069310D+00,-.7930693069306921D-01,
     4  0.7313861386138615D+00,0.7930693069306982D-01,
     5  -.8106930693069312D+00,-.4141584158415841D+00,
     6  0.6520792079207922D+00,-.2379207920792078D+00,
     7  0.4141584158415841D+00,0.2379207920792082D+00,
     8  -.6520792079207922D+00,0.0000000000000000D+00,
     9  0.4450000000000002D+00,-.4450000000000000D+00,
     *  0.0000000000000000D+00,-.5963000000000002D+00,
     1  0.5962999999999998D+00,-.2291089108910891D+00,
     2  0.4141584158415842D+00,-.1850495049504950D+00,
     3  0.2291089108910891D+00,0.1850495049504952D+00,
     4  -.4141584158415841D+00,0.0000000000000000D+00/
c
        data ys6/
     1  -.5138417395787671D+00,-.5138417395787670D+00,
     2  0.1027683479157534D+01,-.5138417395787673D+00,
     3  -.3764781062260273D+00,0.8903198458047944D+00,
     4  -.5138417395787673D+00,0.8903198458047944D+00,
     5  -.3764781062260267D+00,-.5138417395787671D+00,
     6  -.1017508395205479D+00,0.6155925790993150D+00,
     7  -.5138417395787671D+00,0.6155925790993149D+00,
     8  -.1017508395205476D+00,-.5138417395787671D+00,
     9  0.2569208697893834D+00,0.2569208697893837D+00,
     *  0.6885479310355478D+00,-.3442739655177737D+00,
     1  -.3442739655177741D+00,-.3459528543698629D+00,
     2  -.2543770988013699D-01,0.3713905642499999D+00,
     3  -.3459528543698629D+00,0.3713905642499998D+00,
     4  -.2543770988013669D-01,0.0000000000000000D+00/
c
        data ws6/
     1  0.2207730458237053D-01,0.2207730458237058D-01,
     2  0.2207730458237056D-01,0.1237260769490342D-01,
     3  0.1237260769490339D-01,0.1237260769490354D-01,
     4  0.1237260769490334D-01,0.1237260769490325D-01,
     5  0.1237260769490349D-01,0.5116764587531173D-01,
     6  0.5116764587531177D-01,0.5116764587531177D-01,
     7  0.5116764587531177D-01,0.5116764587531182D-01,
     8  0.5116764587531157D-01,0.3642644935718405D-01,
     9  0.3642644935718384D-01,0.3642644935718404D-01,
     *  0.5020415030954761D-01,0.5020415030954779D-01,
     1  0.5020415030954774D-01,0.7303862873731552D-01,
     2  0.7303862873731545D-01,0.7303862873731531D-01,
     3  0.7303862873731534D-01,0.7303862873731555D-01,
     4  0.7303862873731559D-01,0.1704770063600019D+00/
c
c
        npols=0
c        
        if( norder .eq. 0 ) then
        npols=1
        call ortho2arrmove(xs0,xsout,npols)
        call ortho2arrmove(ys0,ysout,npols)
        call ortho2arrmove(ws0,wsout,npols)
        endif
c
        if( norder .eq. 1 ) then
        npols=3
        call ortho2arrmove(xs1,xsout,npols)
        call ortho2arrmove(ys1,ysout,npols)
        call ortho2arrmove(ws1,wsout,npols)
        endif
c
        if( norder .eq. 2 ) then
        npols=6
        call ortho2arrmove(xs2,xsout,npols)
        call ortho2arrmove(ys2,ysout,npols)
        call ortho2arrmove(ws2,wsout,npols)
        endif
c
        if( norder .eq. 3 ) then
        npols=10
        call ortho2arrmove(xs3,xsout,npols)
        call ortho2arrmove(ys3,ysout,npols)
        call ortho2arrmove(ws3,wsout,npols)
        endif
c
        if( norder .eq. 4 ) then
        npols=15
        call ortho2arrmove(xs4,xsout,npols)
        call ortho2arrmove(ys4,ysout,npols)
        call ortho2arrmove(ws4,wsout,npols)
        endif
c
        if( norder .eq. 5 ) then
        npols=21
        call ortho2arrmove(xs5,xsout,npols)
        call ortho2arrmove(ys5,ysout,npols)
        call ortho2arrmove(ws5,wsout,npols)
        endif
c
        if( norder .eq. 6 ) then
        npols=28
        call ortho2arrmove(xs6,xsout,npols)
        call ortho2arrmove(ys6,ysout,npols)
        call ortho2arrmove(ws6,wsout,npols)
        endif
c
c
c       on the standard triangle, the sum of the weights should be
c       sqrt(3.0d0)  
c       
        d=0
        do 1200 i=1,npols
        d=d+wsout(i)
 1200 continue
c
cccc        call prin2('in ortho2smexps, sum of weights=*',d,1)
c
        do 1400 i=1,npols
        wsout(i)=wsout(i)/d
        wsout(i)=wsout(i)*sqrt(3.0d0)
 1400 continue
c
c       get the interpolation matrices
c
        call ortho2intpmatr(norder,xsout,ysout,npols,umatr,vmatr)
c
        return
        end
c
c
c
c
c
        subroutine ortho2intpmatr(norder,xs,ys,npols,umatr,vmatr)
        implicit real *8 (a-h,o-z)
        dimension xs(1),ys(1),umatr(npols,npols),vmatr(npols,npols)
        dimension z(2),work(10 000)
c
c       form the interpolation matrices umatr and vmatr
c
        do 1200 i=1,npols
c
        z(1)=xs(i)
        z(2)=ys(i)
        call ortho2eva(norder,z,vmatr(1,i),work)
        call ortho2eva(norder,z,umatr(1,i),work)
 1200 continue
c
c       transpose umatr and vmatr
c
        do 1600 j=1,npols
        do 1400 i=1,npols
        if( i .gt. j ) goto 1400
c
        tmp=umatr(i,j)
        umatr(i,j)=umatr(j,i)
        umatr(j,i)=tmp
c
        tmp=vmatr(i,j)
        vmatr(i,j)=vmatr(j,i)
        vmatr(j,i)=tmp        
 1400 continue
 1600 continue
c
        call orthom(umatr,npols,work,rcond)
cccc        call prin2('rcond=*',rcond,1)
c
        return
        end
c
c       
c
c
c
        subroutine ortho2diffmatr(norder,xs,ys,npols,umatr,vmatr,
     $     dxmatr,dymatr)
        implicit real *8 (a-h,o-z)
        dimension xs(1),ys(1),umatr(npols,npols),vmatr(npols,npols),
     $     dxmatr(npols,npols),dymatr(npols,npols)
        dimension z(2),work(10 000),work2(10 000)
c
c       This subroutine constructs the matrices of spectral differentiation 
c       on the nodes (xs,ys). The nodes are located on the standard triangle 
c       with the vertices
c
c       (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))            (1)
c
c       and the differentiation is perfomed with respect to x and y on
c       the said triangle
c
c       ... first, construct the interpolation matrices
c
        call ortho2intpmatr(norder,xs,ys,npols,umatr,vmatr)
c
ccc        call prin2('in diffmatr, xs=*',xs,npols)
ccc        call prin2('in diffmatr, ys=*',ys,npols)
ccc        call prin2('in diffmatr, umatr=*',umatr,npols*npols)
ccc        call prin2('in diffmatr, vmatr=*',vmatr,npols*npols)
c
        do 1200 i=1,npols
c
        z(1)=xs(i)
        z(2)=ys(i)
        call ortho2eva3(norder,z,work2,dxmatr(1,i),dymatr(1,i),work)
 1200 continue
c
c       transpose dxmatr and dymatr
c
        do 1600 j=1,npols
        do 1400 i=1,npols
        if( i .gt. j ) goto 1400
c
        tmp=dxmatr(i,j)
        dxmatr(i,j)=dxmatr(j,i)
        dxmatr(j,i)=tmp
c
        tmp=dymatr(i,j)
        dymatr(i,j)=dymatr(j,i)
        dymatr(j,i)=tmp        
 1400 continue
 1600 continue
c
        call ortho2matmul(dxmatr,umatr,work2,npols)
        call ortho2arrmove(work2,dxmatr,npols*npols)
c
        call ortho2matmul(dymatr,umatr,work2,npols)
        call ortho2arrmove(work2,dymatr,npols*npols)
c
        return
        end
c
c       
c
c
c
        subroutine ortho2siexps(itype,norder,npols,xsout,ysout,
     1     umatr,vmatr,wsout)
        implicit real *8 (a-h,o-z)
        dimension xsout(1),ysout(1),wsout(1),umatr(1),vmatr(1)
c
c       This subroutine constructs the interpolation nodes for the
c       polynomials (i.e. smooth functions) on the simplex triangle with
c       the vertices 
c
c       (0,0), (1,0), (0,1)                                   (1)
c
c       and the corresponding quadrature weights. It also
c       constructs the matrix vmatr converting the coefficients of the
c       polynomial expansion to its values at the interpolation nodes,
c       and its inverse umatr, converting the values of a function at
c       the interpolation nodes into the coefficients of the polynomial
c       expansion.
c
c         Input parameters:
c
c    itype - the type of the calculation to be performed. currently
c          unused
c    norder - the order of the expansion
c
c
c         Output parameters:
c
c    npols - the number of the polynomials, i.e. the terms in the
c          expansion
c    xsout - the x-coordinates of the interpolation nodes (npols of them)
c    ysout - the y-coordinates of the interpolation nodes (npols of them)
c    umatr - the npols*npols matrix, converting the values of the polynomial
c          at the interpolation nodes into the coefficients of its expansion
c    vmatr - the npols*npols matrix, converting the coefficients of 
c          the expansion into its values at the interpolation nodes.
c    wsout - the corresponding quadrature weigths (npols of them)
c
c
c
c       ... first, get the interpolation nodes for the standard triangle
c
c
        call ortho2smexps(itype,norder,npols,xsout,ysout,
     1     umatr,vmatr,wsout)
c
ccc        call ortho2sfexps(itype,norder,npols,xsout,ysout,
ccc     1     umatr,vmatr,wsout)
c
c       ... and convert them into simplex coordinates
c
        do 1800 i=1,npols
        call ortho2_stdtosimplex(xsout(i),ysout(i),u,v)
        xsout(i)=u
        ysout(i)=v
        wsout(i)=wsout(i)/sqrt(3.0d0)
        wsout(i)=wsout(i)*0.5d0
 1800 continue
c
ccc        call prin2('xsout=*',xsout,npols)
ccc        call prin2('ysout=*',ysout,npols)
c
        return
        end
c
c
c
c
c
        subroutine ortho2sipols(u,v,norder,pols)
        implicit real *8 (a-h,o-z)
        dimension pols(1),vert1(2),vert2(2),vert3(2),z(2),work(1000)
c        data ifinit/0/
c        save
c
c       evaluates a bunch of orthogonal polynomials on the simplex
c       at the user-provided point
c
c
c        if( ifinit .eq. 0 ) then
c
        vert1(1)=-1
        vert1(2)=-1/sqrt(3.0d0)
        vert2(1)=1
        vert2(2)=-1/sqrt(3.0d0)
        vert3(1)=0
        vert3(2)=2/sqrt(3.0d0)
c
c        ifinit=1
c        endif
c
        x=vert1(1)+u*(vert2(1)-vert1(1))+v*(vert3(1)-vert1(1))
        y=vert1(2)+u*(vert2(2)-vert1(2))+v*(vert3(2)-vert1(2))
c
        z(1)=x
        z(2)=y
        call ortho2eva(norder,z,pols,work)
c
        return
        end
c
c
c
c
c       
        subroutine ortho2sipolders(u,v,norder,pols,dersu,dersv)
        implicit real *8 (a-h,o-z)
        dimension pols(1),dersu(1),dersv(1)
        dimension vert1(2),vert2(2),vert3(2),z(2),
     $     dersx(10 000),dersy(10 000),work(1000)
c        data ifinit/0/
c        save
c
c       evaluates a bunch of orthogonal polynomials on the simplex at
c       the user-provided point, and the derivatives of the said
c       polynomials
c
c
c        if( ifinit .eq. 0 ) then
c
        vert1(1)=-1
        vert1(2)=-1/sqrt(3.0d0)
        vert2(1)=1
        vert2(2)=-1/sqrt(3.0d0)
        vert3(1)=0
        vert3(2)=2/sqrt(3.0d0)
c
c        ifinit=1
c        endif
c
        x=vert1(1)+u*(vert2(1)-vert1(1))+v*(vert3(1)-vert1(1))
        y=vert1(2)+u*(vert2(2)-vert1(2))+v*(vert3(2)-vert1(2))
c
        z(1)=x
        z(2)=y
        call ortho2eva3(norder,z,pols,dersx,dersy,work)
c
        npols=(norder+1)*(norder+2)/2
c
        do 1200 i=1,npols
        dersu(i)=
     $      dersx(i)*(vert2(1)-vert1(1))
     $     +dersy(i)*(vert2(2)-vert1(2))
        dersv(i)=
     $      dersx(i)*(vert3(1)-vert1(1))
     $     +dersy(i)*(vert3(2)-vert1(2))
 1200   continue
c
        return
        end
c
c
c
c
c       
        subroutine ortho2siexevc(u,v,cval,norder,npols,coefs)
        implicit real *8 (a-h,o-z)
        dimension vert1(2),vert2(2),vert3(2),z(2),work(1000),pols(1000)
        complex *16 coefs(1),cval
c        data ifinit/0/
c        save
c
c       computes the value of polynomial expansion on the simplex
c       at the user-provided point
c
c
c        if( ifinit .eq. 0 ) then
c
        vert1(1)=-1
        vert1(2)=-1/sqrt(3.0d0)
        vert2(1)=1
        vert2(2)=-1/sqrt(3.0d0)
        vert3(1)=0
        vert3(2)=2/sqrt(3.0d0)
c
c        ifinit=1
c        endif
c
        x=vert1(1)+u*(vert2(1)-vert1(1))+v*(vert3(1)-vert1(1))
        y=vert1(2)+u*(vert2(2)-vert1(2))+v*(vert3(2)-vert1(2))
c
        z(1)=x
        z(2)=y
        call ortho2eva(norder,z,pols,work)
c
        cval=0
c
        do 1200 i=1,npols
        cval=cval+coefs(i)*pols(i)
 1200 continue
c
        return
        end
c
c
c
c
c
        subroutine ortho2triangle(itype,vert1,vert2,vert3)
        implicit real *8 (a-h,o-z)
        dimension vert1(2),vert2(2),vert3(2)
c
c
        if( itype .eq. 1 ) then 
c
c
c       ... construct the simplex triangle with the vertices 
c
c       (0,0), (1,0), (0,1)
c
c
        vert1(1)=0
        vert1(2)=0
        vert2(1)=1
        vert2(2)=0
        vert3(1)=0
        vert3(2)=1
c
        endif
c
        if( itype .eq. 2 ) then 
c
c
c       ... construct the standard triangle with the vertices 
c
c       (-1,-1/sqrt(3)), (1,-1/sqrt(3)), (0, 2/sqrt(3))
c
c        
        vert1(1)=-1
        vert1(2)=-1/sqrt(3.0d0)
        vert2(1)=1
        vert2(2)=-1/sqrt(3.0d0)
        vert3(1)=0
        vert3(2)=2/sqrt(3.0d0)
c
        endif
c
        return
        end
c
c
c
c
c
        subroutine ortho2arrmove(x,y,n)
        implicit real *8 (a-h,o-z)
        dimension x(1),y(1)
c
        do 1200 i=1,n
        y(i)=x(i)
 1200 continue
        return
        end
c
c
c
c
c
        subroutine ortho2matmul(a,b,c,n)
        implicit real *8 (a-h,o-z)
        dimension a(n,n),b(n,n),c(n,n)
c
        do 2000 i=1,n
        do 1800 j=1,n
        d=0
        do 1600 k=1,n
        d=d+a(i,k)*b(k,j)
 1600 continue
        c(i,j)=d
 1800 continue
 2000 continue
        return
c
c
c
c
        entry ortho2matmua(a,b,c,n)
ccc          call prin2('in matmua, a=*',a,n**2)
ccc          call prin2('in matmua, b=*',b,n**2)
        do 3000 i=1,n
        do 2800 j=1,n
        d=0
        do 2600 k=1,n
        d=d+a(i,k)*b(j,k)
 2600 continue
        c(i,j)=d
 2800 continue
 3000 continue
ccc          call prin2('exiting, c=*',c,n**2)
        return
        end
c
c
c
c
        subroutine ortho2_stdtosimplex(x,y,uout,vout)
        implicit real *8 (a-h,o-z)
c
c       map the standard triangle to the simplex
c
        sqrt3=sqrt(3.0d0)
        uout=0.5d0*(x+1)-0.5d0/sqrt3*(y+1/sqrt3)
        vout=            1.0d0/sqrt3*(y+1/sqrt3)
c
        return
        end
c
c
c
c
c
        subroutine ortho2_simplextostd(u,v,xout,yout)
        implicit real *8 (a-h,o-z)
        dimension vert1(2),vert2(2),vert3(2)
c        data ifinit/0/
c        save
c
c       map the standard triangle to the simplex
c
c
c        if( ifinit .eq. 0 ) then
c
        vert1(1)=-1
        vert1(2)=-1/sqrt(3.0d0)
        vert2(1)=1
        vert2(2)=-1/sqrt(3.0d0)
        vert3(1)=0
        vert3(2)=2/sqrt(3.0d0)
c
c        ifinit=1
c        endif
c
        xout=vert1(1)+u*(vert2(1)-vert1(1))+v*(vert3(1)-vert1(1))
        yout=vert1(2)+u*(vert2(2)-vert1(2))+v*(vert3(2)-vert1(2))
c
        return
        end
c
c
c
c
c       

